Annotation of embedaddon/php/ext/pcre/tests/007.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: preg_replace_callback() with callback that modifies subject string
                      3: --SKIPIF--
                      4: <?php
                      5: if (@preg_match('/./u', '') === false) {
                      6:        die('skip no utf8 support in PCRE library');
                      7: }
                      8: ?>
                      9: --FILE--
                     10: <?php
                     11: 
                     12: function evil($x) {
                     13:        global $txt;
                     14:        $txt[3] = "\xFF";
                     15:        var_dump($x);
                     16:        return $x[0];
                     17: }
                     18: 
                     19: $txt = "ola123";
                     20: var_dump(preg_replace_callback('#.#u', 'evil', $txt));
                     21: var_dump($txt);
                     22: var_dump(preg_last_error() == PREG_NO_ERROR);
                     23: 
                     24: var_dump(preg_replace_callback('#.#u', 'evil', $txt));
                     25: var_dump(preg_last_error() == PREG_BAD_UTF8_ERROR);
                     26: 
                     27: echo "Done!\n";
                     28: ?>
                     29: --EXPECT--
                     30: array(1) {
                     31:   [0]=>
                     32:   string(1) "o"
                     33: }
                     34: array(1) {
                     35:   [0]=>
                     36:   string(1) "l"
                     37: }
                     38: array(1) {
                     39:   [0]=>
                     40:   string(1) "a"
                     41: }
                     42: array(1) {
                     43:   [0]=>
                     44:   string(1) "1"
                     45: }
                     46: array(1) {
                     47:   [0]=>
                     48:   string(1) "2"
                     49: }
                     50: array(1) {
                     51:   [0]=>
                     52:   string(1) "3"
                     53: }
                     54: string(6) "ola123"
                     55: string(6) "ola˙23"
                     56: bool(true)
                     57: NULL
                     58: bool(true)
                     59: Done!

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>