2012-08-24 20 views
2

我如何(使用PHP)從具有某個類的DIVS中刪除樣式屬性? 由於'拖動&拖放'過程,某些DIV元素被不必要的樣式污染,這可能會導致稍後出現問題。如何從具有某個類的DIV中刪除樣式標記

我知道在'拖拽&刪除'過程後,我可以使用JavaScript刪除樣式屬性,但只有在服務器正在處理HTML時才能刪除它們(用於將HTML作爲電子郵件發送)。

+0

檢查了這一點http://php.net/manual/en/function.preg-replace.php – 2012-08-24 07:36:29

+0

@Pēteris不,不要。正則表達式不是解析任何東西,除非最簡單的HTML結構。 – lonesomeday

回答

1

就我所知,這不是一個特別困難的問題。您需要將HTML加載到DOMDocument結構中,然後使用簡單的XPath屬性選擇器來查找相關元素,然後使用DOMElement::removeAttribute來刪除樣式屬性。您的代碼可能是這樣的:

$dom = new DOMDocument; 
$dom->loadHTML($dirtyHtml); 

$xpath = new DOMXPath($dom); 

$divs = $xpath->query('//div[@class="someclass"]'); 

foreach ($divs as $div) { 
    $div->removeAttribute('style'); 
} 

$cleanHtml = $dom->saveHTML(); 
+0

非常感謝!看到解決方案時有一個「duuhh」時刻;) – MikeVrind

相關問題