How can I use php to remove tags with empty text node?(如何使用 php 删除带有空文本节点的标签?)
本文介绍了如何使用 php 删除带有空文本节点的标签?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用 php 去除带有空文本节点的标签?
How can I use php to remove tags with empty text node?
例如,
<div class="box"></div>
删除
<a href="#"></a>
删除
<p><a href="#"></a></p>
删除
<span style="..."></span>
移除
但我想像这样保留带有文本节点的标签,
But I want to keep the tag with text node like this,
<a href="#">link</a>
保持
我也想把这种乱七八糟的东西去掉,
I want to remove something messy like this too,
<p><strong><a href="http://xx.org.uk/dartmoor-arts"></a></strong></p>
<p><strong><a href="http://xx.org.uk/depw"></a></strong></p>
<p><strong><a href="http://xx.org.uk/devon-guild-of-craftsmen"></a></strong></p>
我测试了下面的两个正则表达式,
I tested both regex below,
$content = preg_replace('!<(.*?)[^>]*>s*</1>!','',$content);
$content = preg_replace('%<(.*?)[^>]*>\s*</\1>%', '', $content);
但他们会留下这样的东西,
But they leave something like this,
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
推荐答案
一种方法可能是:
$dom = new DOMDocument();
$dom->loadHtml(
'<p><strong><a href="http://xx.org.uk/dartmoor-arts">test</a></strong></p>
<p><strong><a href="http://xx.org.uk/depw"></a></strong></p>
<p><strong><a href="http://xx.org.uk/devon-guild-of-craftsmen"></a></strong></p>'
);
$xpath = new DOMXPath($dom);
while(($nodeList = $xpath->query('//*[not(text()) and not(node())]')) && $nodeList->length > 0) {
foreach ($nodeList as $node) {
$node->parentNode->removeChild($node);
}
}
echo $dom->saveHtml();
您可能需要根据自己的需要进行一些更改.
Probably you'll have to change that a bit for your needs.
这篇关于如何使用 php 删除带有空文本节点的标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何使用 php 删除带有空文本节点的标签?


基础教程推荐
猜你喜欢
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01