2010-09-20 6 views
0

мне нужно if() функцию, чтобы сделать это:PHP: preg_replace() символов и сделать исключения

preg_replace() буквы (a, b, c и т.д.) для тех, завернутые в тегах (<p>, <b>, <span> за исключением, и т. д.) и исключать буквы, если они являются частью определенного слова.

$string = "<p>replace everything inside tags <b>only</b> </p>exception"; 
$patterns = array(); 
$patterns[0] = '/e/'; 
$patterns[1] = '/b/'; 
$patterns[2] = '/s/'; 
$replacements = array(); 
$replacements[2] = '-e-'; 
$replacements[1] = '-b-'; 
$replacements[0] = '-s-'; 
echo preg_replace($patterns, $replacements, $string); 

Я хочу, чтобы "<p>", "<b>" и слово "исключение" оставаться неизменным.

ответ

1

Это почти всегда плохая идея, чтобы попытаться сделать это в регулярном выражении. Вместо этого следует попытаться использовать парсер HTML:

Robust and Mature HTML Parser for PHP

Смежные вопросы