Задать вопрос
@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'] );
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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'] );
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы