Я пытаюсь извлечь информацию из тегов с использованием регулярного выражения, а затем вернуть результат на основе различных частей тега.PHP preg_replace() обратные ссылки, используемые в качестве аргументов другой функции
preg_replace('/<(example)?(example2)+ />/', analyze(array($0, $1, $2)), $src);
Так я захватывая части и передать его в функцию analyze()
. Оказавшись там, я хочу сделать работу на основе самих частей:
function analyze($matches) {
if ($matches[0] == '<example example2 />')
return 'something_awesome';
else if ($matches[1] == 'example')
return 'ftw';
}
и т.д. Но как только я получаю к функции анализа, $matches[0]
просто равна строке «$0
». Вместо этого мне нужно $matches[0]
для ссылки на обратную ссылку из вызова preg_replace(). Как я могу это сделать?
Спасибо.
EDIT: Я только что увидел функцию preg_replace_callback(). Возможно, это то, что я ищу ...