str_replace操纵html标签

时间:2014-08-19 13:54:07

标签: php html str-replace

我写了一个搜索html内容的脚本,并用链接的关键字

替换了一些关键字

代码:

$text = '<p>hello</p>
<img src="hello.png" />';

echo str_replace('hello', '<a href="hello">hello</a>', $text);

结果:

<p><a href="hello">hello</a></p>
<img src="<a href="hello">hello</a>.png" />

现在你可以看到图像的src属性被操纵了,我不想要这个。

如何排除正在搜索替换的 img标记 html标记?

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

更简单的解决方案

echo str_replace('<p>hello</p>', '<a href="hello"></a>', $text);

广泛的REGEX解决方案

请检查:http://www.thatsquality.com/articles/how-to-match-and-replace-content-between-two-html-tags-using-regular-expressions

PHPDOM解决方案

请检查:http://php.net/manual/en/book.dom.php

答案 1 :(得分:0)

尝试正则表达式

$text = '<p>hello</p>
<img src="hello.png" />';
echo preg_replace("/hello(?!.(png|jpg))/", "<a href='hello'>here</a>", $text);