php-src/ext/pcre/tests/006.phpt
Antony Dovgal 2b17f226b9 if one of regular expressions in the array fails, return NULL right away
this fixes "String is not zero-terminated" error and makes the behaviour consistent with regexps passed as strings
2007-09-20 08:10:20 +00:00

29 lines
808 B
PHP

--TEST--
preg_replace() with array of failing regular expressions
--FILE--
<?php
$text = '[CODE]&lt;td align=&quot;$stylevar[right]&quot;&gt;[/CODE]';
$result = preg_replace(array('#\[(right)\](((?R)|[^[]+?|\[)*)\[/\\1\]#siU', '#\[(right)\](((?R)|[^[]+?|\[)*)\[/\\1\]#siU'), '', $text);
var_dump($text);
var_dump($result);
$result = preg_replace('#\[(right)\](((?R)|[^[]+?|\[)*)\[/\\1\]#siU', '', $text);
var_dump($text);
var_dump($result);
echo "Done\n";
?>
--EXPECTF--
string(58) "[CODE]&lt;td align=&quot;$stylevar[right]&quot;&gt;[/CODE]"
NULL
string(58) "[CODE]&lt;td align=&quot;$stylevar[right]&quot;&gt;[/CODE]"
NULL
Done
--UEXPECTF--
unicode(58) "[CODE]&lt;td align=&quot;$stylevar[right]&quot;&gt;[/CODE]"
NULL
unicode(58) "[CODE]&lt;td align=&quot;$stylevar[right]&quot;&gt;[/CODE]"
NULL
Done