我如何(使用PHP)從具有某個類的DIVS中刪除樣式屬性? 由於'拖動&拖放'過程,某些DIV元素被不必要的樣式污染,這可能會導致稍後出現問題。如何從具有某個類的DIV中刪除樣式標記
我知道在'拖拽&刪除'過程後,我可以使用JavaScript刪除樣式屬性,但只有在服務器正在處理HTML時才能刪除它們(用於將HTML作爲電子郵件發送)。
我如何(使用PHP)從具有某個類的DIVS中刪除樣式屬性? 由於'拖動&拖放'過程,某些DIV元素被不必要的樣式污染,這可能會導致稍後出現問題。如何從具有某個類的DIV中刪除樣式標記
我知道在'拖拽&刪除'過程後,我可以使用JavaScript刪除樣式屬性,但只有在服務器正在處理HTML時才能刪除它們(用於將HTML作爲電子郵件發送)。
就我所知,這不是一個特別困難的問題。您需要將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();
非常感謝!看到解決方案時有一個「duuhh」時刻;) – MikeVrind
檢查了這一點http://php.net/manual/en/function.preg-replace.php – 2012-08-24 07:36:29
@Pēteris不,不要。正則表達式不是解析任何東西,除非最簡單的HTML結構。 – lonesomeday