diff options
author | Tristan Darricau <tristan.darricau@sensiolabs.com> | 2015-06-24 16:36:15 +0200 |
---|---|---|
committer | Tristan Darricau <tristan.darricau@sensiolabs.com> | 2015-06-24 16:36:15 +0200 |
commit | 6bcf12a558bed49267aba12b6ef000c52e8632e2 (patch) | |
tree | 98a791e859b40d3ede55e335a1da68417fe7cbfc /phpBB/includes/acp/acp_bbcodes.php | |
parent | d430acb5680ddfd249daf1bd41a268ed47a6823e (diff) | |
parent | c30e0610e938b40a8c04463d2b8de5a64ee59210 (diff) | |
download | forums-6bcf12a558bed49267aba12b6ef000c52e8632e2.tar forums-6bcf12a558bed49267aba12b6ef000c52e8632e2.tar.gz forums-6bcf12a558bed49267aba12b6ef000c52e8632e2.tar.bz2 forums-6bcf12a558bed49267aba12b6ef000c52e8632e2.tar.xz forums-6bcf12a558bed49267aba12b6ef000c52e8632e2.zip |
Merge pull request #3618 from marc1706/ticket/13832
[ticket/13832] Use preg_replace_callback instead of /e modifier
Diffstat (limited to 'phpBB/includes/acp/acp_bbcodes.php')
-rw-r--r-- | phpBB/includes/acp/acp_bbcodes.php | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/phpBB/includes/acp/acp_bbcodes.php b/phpBB/includes/acp/acp_bbcodes.php index 2b438e5670..c9225a7eae 100644 --- a/phpBB/includes/acp/acp_bbcodes.php +++ b/phpBB/includes/acp/acp_bbcodes.php @@ -489,7 +489,9 @@ class acp_bbcodes if (preg_match_all('/(?<!\\\\)\$([0-9]+)/', $replace, $repad)) { $repad = $pad + sizeof(array_unique($repad[0])); - $replace = preg_replace('/(?<!\\\\)\$([0-9]+)/e', "'\${' . (\$1 + \$pad) . '}'", $replace); + $replace = preg_replace_callback('/(?<!\\\\)\$([0-9]+)/', function ($match) use ($pad) { + return '${' . ($match[1] + $pad) . '}'; + }, $replace); $pad = $repad; } @@ -554,10 +556,18 @@ class acp_bbcodes trigger_error($user->lang['BBCODE_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING); } - $fp_match = preg_replace('#\[/?' . $bbcode_search . '#ie', "strtolower('\$0')", $fp_match); - $fp_replace = preg_replace('#\[/?' . $bbcode_search . '#ie', "strtolower('\$0')", $fp_replace); - $sp_match = preg_replace('#\[/?' . $bbcode_search . '#ie', "strtolower('\$0')", $sp_match); - $sp_replace = preg_replace('#\[/?' . $bbcode_search . '#ie', "strtolower('\$0')", $sp_replace); + $fp_match = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) { + return strtolower($match[0]); + }, $fp_match); + $fp_replace = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) { + return strtolower($match[0]); + }, $fp_replace); + $sp_match = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) { + return strtolower($match[0]); + }, $sp_match); + $sp_replace = preg_replace_callback('#\[/?' . $bbcode_search . '#i', function ($match) { + return strtolower($match[0]); + }, $sp_replace); return array( 'bbcode_tag' => $bbcode_tag, |