2010-06-16 75 views
1

我必須清理一些HTML代碼以刪除<body>標記中的<style><link>標記。 我已經使用PHP Tidy做一些清理,但我沒有找到如何使用PHP Tidy去除這些標籤。Php Tidy:刪除身體內部的鏈接和樣式標記

您有解決方案嗎?或者,也許另一種標記清潔PHP類...

回答

2

不知道怎麼做,與整潔,但你可以使用DOM

$dom = new DOMDocument;     // init new DOMDocument 
$dom->loadHTML($html);      // load HTML into it 
$xpath = new DOMXPath($dom);    // create a new XPath 
$nodes = $xpath->query('//body/style'); // Find all style elements in body tag 
foreach($nodes as $node) {     // Iterate over found elements 
    $node->parentNode->removeChild($node); // Remove complete style node 
} 
echo $dom->saveHTML();      // output cleaned HTML 

對於<link>元素,調整XPath來//body/link

+0

不錯。我以前沒有考慮過這個。 – CaseySoftware 2010-06-16 13:13:26

+0

謝謝。那就是訣竅。 – Franck 2010-06-16 14:29:00

0

整齊另一種方法是http://htmlpurifier.org/

HTML淨化器是一個用PHP 符合標準的HTML 過濾庫。它還將確保您的文檔符合標準 ,只有通過W3C的全面知識才能實現這些內容.HTML Purifier不僅可以刪除所有惡意的 代碼(更好的稱爲XSS),而且還可以確保您的文檔符合標準,只能通過 獲得全面的知識。規格。


提出這一額外的答案,因爲它是如此完全無關的DOM的解決方案。

+0

確實,我會看看HTML Purifier,它似乎是一個更有效的解決方案。 – Franck 2010-06-16 14:29:47