Вам необходимо отредактировать шаблон следующим образом:
$data = preg_replace_callback('/{{([^{}]*)}}/', array($this, 'special_functions'), $data);
Шаблон {{([^{}]*)}}
будет соответствовать:
{{
- {{
подстрока ([^{}]*)
- Группа 1: любые 0+ символов, кроме {
и }
}}
- }}
текст
Затем внутриspecial_functions
, замените switch ($occurances[0])
на switch ($occurances[1])
.$occurrances[1]
- это текстовая часть, захваченная шаблоном ([^{}]*)
.Поскольку полное совпадение составляет {{...}}
, а захваченное - ...
, ...
используется для проверки возможных случаев в блоке переключателей, и фигурные скобки будут удалены, поскольку они были потреблены (=добавляется к значению совпадения, которое заменяется в результате выполнения функции preg_replace_callback
.
См. демонстрационную версию PHP .