Php 删除<;p>&;nbsp</p>;使用DOM或正则表达式
如何使用DOM或正则表达式删除此类型的p标记 我也想像这样删除多个pPhp 删除<;p>&;nbsp</p>;使用DOM或正则表达式,php,html,regex,domparser,Php,Html,Regex,Domparser,如何使用DOM或正则表达式删除此类型的p标记 我也想像这样删除多个p <p> </p> <p> </p> <p> </p> preg|u replace(“||“,”,“ ”; preg|u replace(“||“,”,“ ”; 如果要删除一个字符串,而该字符串始终是“””,最简单、最快的解决方案可能是使用: $new\u string=str\u repl
<p> </p>
<p> </p>
<p> </p>
preg|u replace(“||“,”,“
”;
preg|u replace(“||“,”,“
”;
如果要删除一个字符串,而该字符串始终是“””
,最简单、最快的解决方案可能是使用:
$new\u string=str\u replace(“”,“$old\u string”);
我认为对于这样一个简单的情况,没有必要使用DOM——这里也不需要正则表达式
当然,如果你需要替换更复杂的东西,那并不总是完全相同的字符串。。。好了,是时候进行DOM操作了;-) 如果要删除一个始终是
“”
的字符串,最简单、最快的解决方案可能是使用:
$new\u string=str\u replace(“”,“$old\u string”);
我认为对于这样一个简单的情况,没有必要使用DOM——这里也不需要正则表达式
当然,如果你需要替换更复杂的东西,那并不总是完全相同的字符串。。。好了,是时候进行DOM操作了;-) 如果您希望使用xpath执行此操作(您的示例只是要求
str\u replace
),您可以将
实体作为字符串()查询:
$html=”
不为空:)
';
$dom=新的DomDocument();
$dom->loadhtml($html);
$xpath=newdomxpath($dom);
$col=$xpath->query(“//p[text()=\”\xC2\xA0\”])
foreach($col作为$e){
$e->parentNode->removeChild($e);
}
echo$dom->saveXML($dom->getElementsByTagName('body')->item(0));
如果您需要使用xpath查询
,希望这对您有所帮助
另请参见:如果您希望使用xpath执行此操作(您的示例只是要求
str\u replace
),您可以将
实体作为字符串查询():
$html=”
不为空:)
';
$dom=新的DomDocument();
$dom->loadhtml($html);
$xpath=newdomxpath($dom);
$col=$xpath->query(“//p[text()=\”\xC2\xA0\”])
foreach($col作为$e){
$e->parentNode->removeChild($e);
}
echo$dom->saveXML($dom->getElementsByTagName('body')->item(0));
如果您需要使用xpath查询
,希望这对您有所帮助
另请参见:没有任何regexp解决方案始终是快速的。如果行是固定的,即使额外的空格也会打断它,即使它不会修改输出。@WooDzu:regex比简单的str_replace()快吗?对此不太确定。@Cem是的,如果字符串更改,这将不再起作用——这就是为什么我说“完全,始终”;-)@WooDzu哦,好的^^我现在明白多了,谢谢你的精确性:-)(我想你说的是“不,正则表达式解决方案…”);很抱歉造成混淆。没有任何regexp解决方案总是快速的。如果行被修复,即使额外的空格也会打断它,即使它不会修改输出。@WooDzu:regex比简单的str_replace()快吗?对此不太确定。@Cem是的,如果字符串更改,这将不再起作用——这就是为什么我说“完全,始终”;-)@WooDzu哦,好的^^我现在明白多了,谢谢你的精确性:-)(我想你说的是“不,正则表达式解决方案…”);很抱歉给你带来了困惑。
preg_replace("|<p> </p>|", "", "<p> </p>
<p> </p>
<p> </p>");
$new_string = str_replace('<p> </p>', '', $old_string);
$html = '<body><p> </p>
<p> </p>
<p> </p>
<p>Not empty :)</p>
</body>';
$dom = new DomDocument();
$dom->loadhtml($html);
$xpath = new DomXPath($dom);
$col = $xpath->query("//p[text()=\"\xC2\xA0\"]"); #
foreach($col as $e) {
$e->parentNode->removeChild($e);
}
echo $dom->saveXML($dom->getElementsByTagName('body')->item(0));