2011-07-23 79 views

回答

5

如果你想刪除一個字符串,它正好,總是'<p>&nbsp;</p>',最簡單和最快的解決方案可能是使用str_replace()

$new_string = str_replace('<p>&nbsp;</p>', '', $old_string); 

我不認爲使用DOM 對於這樣一個簡單的例子有必要 - 和正則表達式是這裏沒有必要。


當然,如果你需要更換更復雜的東西,這不是DOM操作;-)

+0

沒有正則表達式的解決方案總是快 – WooDzu

+0

如果線路是固定的,甚至額外的空間將打破它,甚至也不會改變輸出。 –

+1

@WooDzu:正則表達式比簡單的str_replace()快嗎?不太確定。 –

0
preg_replace("|<p>&nbsp;</p>|", "", "<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p>"); 
0

總是一模一樣的字符串......嗯,這將是一次在情況下,您喜歡做的是使用XPath(你的例子只是苛求str_replace不過),可以查詢&nbsp實體作爲字符串(Demo):

$html = '<body><p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>&nbsp;</p> 
<p>Not empty :)</p> 
</body>'; 

$dom = new DomDocument(); 
$dom->loadhtml($html); 
$xpath = new DomXPath($dom); 
$col = $xpath->query("//p[text()=\"\xC2\xA0\"]"); # &nbsp; 
foreach($col as $e) { 
    $e->parentNode->removeChild($e); 
} 
echo $dom->saveXML($dom->getElementsByTagName('body')->item(0)); 

希望,如果你需要查詢&nbsp;使用XPath,這是有幫助的。

看得那麼清楚:Using XPATH to search text containing

相關問題