我们可以使用strip_tags删除链接在图像上的标签吗?
例如我想要
<a href=""><img src="" /></a>
是
<img src="" />
我需要保留图片并删除周围的所有标签。除了使用Simple HTML Dom之外,我希望有一种更简单的方法来做到这一点
答案 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);