fix bug in regex_replace where a \0 character ingores the rest of the line

This commit is contained in:
monte.ohrt
2008-02-11 15:55:31 +00:00
parent 71f31c53b2
commit cc040d7350
2 changed files with 7 additions and 0 deletions

5
NEWS
View File

@@ -1,3 +1,8 @@
Version 2.6.19 (Feb 11th, 2008)
-------------------------------
- fix regex_replace allowing \0 in the search string (c960657,
monte)
- add append feature to {capture} (jablko, monte)
- fix when (un)registering filters with the same method name but different class
name (danilo)

View File

@@ -22,6 +22,8 @@
*/
function smarty_modifier_regex_replace($string, $search, $replace)
{
if (($pos = strpos($search,"\0")) !== false)
$search = substr($search,0,$pos);
if (preg_match('!([a-zA-Z\s]+)$!s', $search, $match) && (strpos($match[1], 'e') !== false)) {
/* remove eval-modifier from $search */
$search = substr($search, 0, -strlen($match[1])) . preg_replace('![e\s]+!', '', $match[1]);