Проблема PHP preg_match - PullRequest
       6

Проблема PHP preg_match

3 голосов
/ 14 ноября 2010

content.tpl

tratata 'hey' tratata <br/>
okay 'aaaaa' <br/>
'trtata' <br/>
echo 'tratata'hmmmm'traatata';
'hello' tratata <br/>

Как изменить все кавычки ТОЛЬКО в эхо?

Мне нужно

tratata 'hey' tratata <br/>
okay 'aaaaa' <br/>
'trtata' <br/>
echo 'tratata\'hmmmm\'traatata';
'hello' tratata <br/>

Спасибо

1 Ответ

3 голосов
/ 14 ноября 2010

Это довольно легко с обратным вызовом:

$var = preg_replace_callback("`(?<=echo ')(.+)(?=';)`iU", function ($matches) { return addslashes($matches[1]); }, $var)

Сначала мы сопоставляем строку в кавычках echo (и ничего больше), затем применяем функцию addlashes к найденному Опция ungreedy (U) важна, поэтому. + Не соответствует всей строке.

...