Я работаю над реализацией CMS и хочу включить функциональность, аналогичную тому, как при использовании word press используются короткие коды, но у меня возникают проблемы с заменой "shortcode" на функцию обратного вызова.
I'mиспользуя приведенное ниже регулярное выражение, чтобы найти все «шорткоды» в коде, и это работает, я просто не могу понять, как можно заменить его обратными вызовами функций.
Regex: / [([^]] *)] /
То, что у меня есть (не работает)
function runShortcodes($input){
return preg_replace_callback(
'/\[([^\]]*)\]/', function ($matches)
{
$function = $matches[1];
ob_start();
$function();
$return = ob_get_contents();
ob_end_clean();
return $return;
}, $input
);
}
function event(){
return 'it worked';
}
echo runShortcodes('test [event]');
Сейчас я просто пытаюсь заменить [событие] возвращаемыми данными функции события.