вопрос
Помогите, занющие люди.
Имеется модуль "Онлайн" для DLE. Более поздних версий не нашёл (без данной проблемы).
В файле модуля имеется строка, которая в PHP 5.5 и выше работать не будет. Нужно переделать из preg_replace() в preg_replace_callback:
Привожу полностью. Выручите пожалуйста...
Имеется модуль "Онлайн" для DLE. Более поздних версий не нашёл (без данной проблемы).
В файле модуля имеется строка, которая в PHP 5.5 и выше работать не будет. Нужно переделать из preg_replace() в preg_replace_callback:
if ( strpos( $this->tpl->copy_template, "[user_group=" ) !== FALSE )
{
$this->tpl->copy_template = @preg_replace( "#\\[user_group=(.+?)\\](.*?)\\[/user_group\\]#ies", "\$this->check_user_group('\\1', '\\2', '".$this->user_group."')", $this->tpl->copy_template );
}
Привожу полностью. Выручите пожалуйста...
Чтобы не переделывать саму функцию "check_user_group", можно сделать так
if (strpos($this->tpl->copy_template, '[user_group=') !== FALSE) {
$this->tpl->copy_template = preg_replace_callback(
"#\\[user_group=(.+?)\\](.*?)\\[/user_group\\]#is",
function ($matches) {
return $this->check_user_group($matches[1], $matches[2], $this->user_group);
},
$this->tpl->copy_template
);
}