我有这个HTML文字:
<strong><em>La congiura della pietra nera</em></strong>
<p><a href="xxxxx">
<img class="alignleft size-medium wp-image-75372" title="mytitle"
src="my.jpg" alt="" width="247" height="350"></a>
<strong>Trama:</strong> La storia ruota attorno ad una setta di guerrieri depositaria dei più arcani segreti.</p>
我需要制作一些单词的prey_replace,我在php中使用这个正则表达式:
$mycontent = preg_replace('{'.$words.'(?![^<>]*>)}i','otherwords',$mycontent);
它工作得很好,但我也需要排除标签内的文字,我该怎么做?
非常感谢答案 0 :(得分:1)
参考以下示例代码:
<?php
$foo = '<p><strong>SCHEDA FILM</strong>:<strong> <em>La congiura della pietra nera</em></strong></p>';
$bar1 = 'La congiura della pietra nera';
$bar2 = 'SCHEDA FILM';
echo preg_replace('/(<(?!em\b)(\w+)[^>]*>)'. $bar1 . '(<\/\2>)/', "$1do something$3", $foo);
//output '<p><strong>SCHEDA FILM</strong>:<strong> <em>La congiura della pietra nera</em></strong></p>'
echo preg_replace('/(<(?!em\b)(\w+)[^>]*>)'. $bar2 . '(<\/\2>)/', "$1do something$3", $foo);
//output '<p><strong>do something</strong>:<strong> <em>La congiura della pietra nera</em></strong></p>'
?>