Я пытаюсь извлечь информацию из тегов с помощью регулярных выражений, а затем вернуть результат на основе различных частей тега.
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 (). Как я могу это сделать?
Спасибо.
РЕДАКТИРОВАТЬ: я только что увидел функцию preg_replace_callback (). Возможно, это то, что я ищу ...