diff options
Diffstat (limited to 'ext/pcre/tests/007.phpt')
-rw-r--r-- | ext/pcre/tests/007.phpt | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/ext/pcre/tests/007.phpt b/ext/pcre/tests/007.phpt new file mode 100644 index 0000000..776bec2 --- /dev/null +++ b/ext/pcre/tests/007.phpt @@ -0,0 +1,59 @@ +--TEST-- +preg_replace_callback() with callback that modifies subject string +--SKIPIF-- +<?php +if (@preg_match('/./u', '') === false) { + die('skip no utf8 support in PCRE library'); +} +?> +--FILE-- +<?php + +function evil($x) { + global $txt; + $txt[3] = "\xFF"; + var_dump($x); + return $x[0]; +} + +$txt = "ola123"; +var_dump(preg_replace_callback('#.#u', 'evil', $txt)); +var_dump($txt); +var_dump(preg_last_error() == PREG_NO_ERROR); + +var_dump(preg_replace_callback('#.#u', 'evil', $txt)); +var_dump(preg_last_error() == PREG_BAD_UTF8_ERROR); + +echo "Done!\n"; +?> +--EXPECT-- +array(1) { + [0]=> + string(1) "o" +} +array(1) { + [0]=> + string(1) "l" +} +array(1) { + [0]=> + string(1) "a" +} +array(1) { + [0]=> + string(1) "1" +} +array(1) { + [0]=> + string(1) "2" +} +array(1) { + [0]=> + string(1) "3" +} +string(6) "ola123" +string(6) "ola˙23" +bool(true) +NULL +bool(true) +Done! |