使用preg_replace PHP删除其中的标签和元素

6 php preg-replace

查看本地主机页面时,我有此HTML行

<a class="moz-txt-link-abbrevi=ated" href="http://www.test.com">Test</a>
Run Code Online (Sandbox Code Playgroud)

我要删除

<a class="moz-txt-link-abbrevi=ated" href=3D"http://www.test.com">

因此,几乎可以将preg替换介于<a和之间的所有内容,>因为最后我将</a>使用字符串替换来删除,而不能使用字符串替换该类,因为其中的href始终是不同的。

我已经试过了

$outputstr = preg_replace('/<a[^>]*>.*?<\/a>/', '', $outputstr);

但是,然后,当然,我的整个一行消失了,因为它删除了<a到之间的</a>所有内容,而我所需要的只是没有类标记的内容。

谁能指出我正确的方向?

我试过使用

$outputstr = str_replace('</a>','',$outputstr); 拿出我的最后一个 </a>

然后

$outputstr = preg_replace('/<a[^>]*.*?\/>/', '', $outputstr);

希望删除

<a class=3D"moz-txt-link-abbrevi=ated" href=3D"http://www.test.com">

任何帮助,将不胜感激!

小智 0

你可以做3件事,

1. 爆炸

由于您想删除直到“>”的部分并保留其余部分,因此您可以爆炸并获取数组中的第二个元素。但我不知道你为什么要在最后保留“”。

$str = '<a class=3D"moz-txt-link-abbrevi=ated" href=3D"http://www.skyberate.nl">www.skyberate.nl</a>';

$arr = explode('>', $str);

echo $arr[1];
Run Code Online (Sandbox Code Playgroud)

2. 去除html标签

使用简单的条形标签。这将删除“”部分。我希望你也想放弃那部分。

$str = '<a class=3D"moz-txt-link-abbrevi=ated" href=3D"http://www.skyberate.nl">www.skyberate.nl</a>';

echo strip_tags($str);
Run Code Online (Sandbox Code Playgroud)

3.正则表达式

我不推荐这样做,因为它会更慢并且看起来更复杂。

干杯。