我如何刪除使用DOM或正則表達式這種類型的p標籤<p> </p>
?刪除<p> </p>與DOM或正則表達式
我想將它刪除多個P這樣,
<p> </p>
<p> </p>
<p> </p>
我如何刪除使用DOM或正則表達式這種類型的p標籤<p> </p>
?刪除<p> </p>與DOM或正則表達式
我想將它刪除多個P這樣,
<p> </p>
<p> </p>
<p> </p>
如果你想刪除一個字符串,它正好,總是'<p> </p>'
,最簡單和最快的解決方案可能是使用str_replace()
:
$new_string = str_replace('<p> </p>', '', $old_string);
我不認爲使用DOM 對於這樣一個簡單的例子有必要 - 和正則表達式是這裏沒有必要。
當然,如果你需要更換更復雜的東西,這不是DOM操作;-)
preg_replace("|<p> </p>|", "", "<p> </p>
<p> </p>
<p> </p>");
總是一模一樣的字符串......嗯,這將是一次在情況下,您喜歡做的是使用XPath(你的例子只是苛求str_replace
不過),可以查詢 
實體作爲字符串(Demo):
$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));
希望,如果你需要查詢
使用XPath,這是有幫助的。
沒有正則表達式的解決方案總是快 – WooDzu
如果線路是固定的,甚至額外的空間將打破它,甚至也不會改變輸出。 –
@WooDzu:正則表達式比簡單的str_replace()快嗎?不太確定。 –