@timers

Как правильно сделать preg_replace_callback?

Собственно делаю переход на php 7, столкнулся с проблемой preg_replace.

Кто подскажет как правильно сделать?

$tpl->result['content'] = preg_replace( "#\\[(Not|Yes)KatalogAllow:(.+?)\\](.+?)\\[/(Not|Yes)KatalogAllow\\]#ies", "\$Katalog->ReplaceTagBlock( '\\2', '\\3', '\\1' )", $tpl->result['content'] );

$tpl->result['content'] = preg_replace( "#\\[(Not|Yes)KatalogAllowCat:(.+?)\\](.+?)\\[/(Not|Yes)KatalogAllowCat\\]#ies", "\$Katalog->ReplaceTagBlockCat( '\\2', '\\3', '\\1' )", $tpl->result['content'] );
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Способов - множество, один из них:
$tpl->result['content'] = preg_replace_callback( "#\\[(Not|Yes)KatalogAllow:(.+?)\\](.+?)\\[/(Not|Yes)KatalogAllow\\]#is", function ($m){return $Katalog->ReplaceTagBlock($m[2], $m[3], $m[1]);}, $tpl->result['content'] );

$tpl->result['content'] = preg_replace_callback( "#\\[(Not|Yes)KatalogAllowCat:(.+?)\\](.+?)\\[/(Not|Yes)KatalogAllowCat\\]#is", function ($m){return $Katalog->ReplaceTagBlockCat($m[2], $m[3], $m[1]);}, $tpl->result['content'] );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы