strip_tags - 剥离<a> tags from a <img/></a>

时间:2014-02-10 23:32:33

标签: php strip-tags

我们可以使用strip_tags删除链接在图像上的标签吗?

例如我想要

<a href=""><img src="" /></a>

<img src="" />

我需要保留图片并删除周围的所有标签。除了使用Simple HTML Dom之外,我希望有一种更简单的方法来做到这一点

2 个答案:

答案 0 :(得分:1)

使用strip_tags无法做到这一点。您可以改为使用正则表达式:

$text = preg_replace("/<a[^>]+\>(<img[^>]+\>)<\/a>/i", '$1', $text);

这种方式比Simple HTML Dom更快更容易

答案 1 :(得分:0)

您可以使用正则表达式执行此操作:

$string = '<a href=""><img src="" /></a>';
$string = preg_replace('/(<a(?: [^>]+| |)>)(?:[^<]+|)<img(?: [^>]+| |)>(?:[^<]+|)(<\/a>)/','$1$2',$string);

如果链接声明中有<img>标记,只要链接之间没有其他标记,就应该替换链接中的任何内容。

如果您只想在相同的情况下替换<img>标记部分,可以使用:

$string = '<a href=""><img src="" /></a>';
$string = preg_replace('/(<a(?: [^>]+| |)>)([^<]+|)<img(?: [^>]+| |)>([^<]+|)(<\/a>)/','$1$2$3$4',$string);