Найти в строке текст и заменить его на return функции
Есть строка вида
$str = 'Привет, это мой project(1, 10) проект';
Мне нужно чтобы там произошло выполнение функции:
function project($ot, $do) {
.....
return $res;
}
И соответственно чтобы в тексте было уже то что вернула функция.
P.S. эта строка выводиться из базы.
Хотелось бы что-то вроде:
str_replace('project(*), function project(*, *), $str)
Ответы (1 шт):
Автор решения: Ivan Dudarev
→ Ссылка
посмотрите в сторону preg_replace_callback. Я думаю, это то, что вам нужно.
<?php
$str = preg_replace_callback('/(\s?)project\s?\(\s?(\d+)\s?,\s?(\d+)\s?\)(\s?)/ui', function($arr){return $arr[1] . project($arr[2], $arr[3]) . $arr[4];}, $str);