1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-07 08:05:25 +02:00

[ticket/13832] Use preg_replace_callback instead of /e modifier

PHPBB3-13832
This commit is contained in:
Marc Alexander 2015-05-18 17:07:02 +02:00
parent c967ba7b9b
commit 71f5c9c327
2 changed files with 23 additions and 3 deletions

View File

@ -491,7 +491,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;
}

View File

@ -385,7 +385,16 @@ class bbcode
}
// Replace {L_*} lang strings
$bbcode_tpl = preg_replace('/{L_([A-Z0-9_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $bbcode_tpl);
$bbcode_tpl = preg_replace_callback('/{L_([A-Z0-9_]+)}/', function ($match) use ($user) {
if (!empty($user->lang[$match['1']]))
{
return $user->lang[$match['1']];
}
else
{
return ucwords(strtolower(str_replace('_', ' ', $match['1'])));
}
}, $bbcode_tpl);
if (!empty($rowset[$bbcode_id]['second_pass_replace']))
{
@ -509,7 +518,16 @@ class bbcode
'email' => array('{EMAIL}' => '$1', '{DESCRIPTION}' => '$2')
);
$tpl = preg_replace('/{L_([A-Z0-9_]+)}/e', "(!empty(\$user->lang['\$1'])) ? \$user->lang['\$1'] : ucwords(strtolower(str_replace('_', ' ', '\$1')))", $tpl);
$tpl = preg_replace_callback('/{L_([A-Z0-9_]+)}/', function ($match) use ($user) {
if (!empty($user->lang[$match['1']]))
{
return $user->lang[$match['1']];
}
else
{
return ucwords(strtolower(str_replace('_', ' ', $match['1'])));
}
}, $tpl);
if (!empty($replacements[$tpl_name]))
{