用PHP从字符串中删除URL但保留其中的数据

3

我尝试过了,但是我不能做到。这是我的代码:

 $p = '|<a [^>]*href="http://<some url>[^"]*"[^>]*>.*</a>|iU';

 preg_replace($p, '$1', $a);

从上面的代码中,我获取了文本中除特定URL之外的所有链接,我想要获取链接标签之间的所有数据。就是这样。

这是链接:

<a href="http://<some url>"> <img src="Some url" alt="DZJarAP" width="213" height="300"></a>

我希望它可以变成:

<img src="http://<some url>" alt="DZJarAP" width="213" height="300">

它可能是任何标签,如img、p、div等。

请帮忙解决。非常感谢你的回答。


1
请提供示例字符串和期望结果 - Justinas
1
你为什么要使用正则表达式来做那件事呢? - AD7six
我使用 < 和 > 来显示特定的 URL,而我并没有在代码中写入它。 - user6239042
2个回答

1
您可以使用preg_match来完成此工作,就像这样。
preg_match("/^(<.*?>)(.*)(<.*?>)$/", $HTML, $matchs);
$imgsTag = $matchs[2];

它会返回 <a> 标签中的所有内容。

我想要在链接标签之间获取所有的标签。如果我只用它来获取img标签,那么是的。好的,谢谢你的尝试。 - user6239042

0

如果我理解正确,这应该会有所帮助:

$p = '|<a href="(.*)">(.*").*(".*)</a>|iU';
preg_replace($p, '$2$1$3', $a);

这将导致:

 <img src="http://onlinegamesocean.com" alt="DZJarAP" width="213" height="300">

只有在你的标签之间有以引号开头和结尾的链接时,才能起作用。要替换的链接必须是第一个带引号的参数。 从你的问题中不清楚 <p><div> 标签与链接有什么关系。


抱歉,我没有得到我想要的结果,请使用特定的URL。具体的URL是google.com。 - user6239042
你能否提供一个像Justinas写的具体例子? - Klaus F.
我想获取<a>标签之间的文本。<a title="Call of Duty Advanced Warfare Free Download" href="http://onlinegamesocean.com/call-of-duty-advanced-warfare-free-download/" target="_blank">下载使命召唤先进战争</a> - user6239042

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接