正在删除<a> links with preg_replace but keeping <img/> images inside</a>

时间:2012-07-08 14:08:27

标签: php preg-replace href

我正在使用:

$this->tresc[$i][description]=preg_replace("/\<a .*\>.*\<\/a\>/i", "", $this->tresc[$i][description]);

删除链接。

有时链接里面有我希望保留的图片:

<a href="http://www.domain.com/page.php"><img src="http://domain.com/image.jpg" alt="​Image" align="left" /></a>

这可能吗?现在,除去<a></a>之间的所有内容。

2 个答案:

答案 0 :(得分:7)

PHP的strip_tags()函数允许您指定要保持不变的HTML实体。

http://php.net/manual/en/function.strip-tags.php

  

您可以使用可选的第二个参数来指定应该使用的标记   不被剥夺。

strip_tags($rssContent, '<img>');

这应该删除/清理所有HTML元素,只留下<img>标记。


PHP文档中该页面的注释部分还包含大量可能对您有用的有用功能。我建议通读它们 This one特别有趣。

答案 1 :(得分:2)

我这样做了:

$this->tresc[$i][description]=preg_replace("/<a href=\"(.*)\">/i", "",$this->tresc[$i][description]);
$this->tresc[$i][description]=preg_replace("/<\/a\>/i", "",$this->tresc[$i][description]);

但这会留下链接上的文字。