在沒有HTML 包裝器的情況下從DOMDocument 保存HTML
當前的任務是從DOMDocument 物件中提取HTML 內容,而不將其包裝在不必要的內容中HTML 標籤。令人擔憂的是,在使用 saveXML 時,它添加了 XML、HTML、body 和 p 標籤包裝器。
隨著 PHP 進步到版本 5.4,Libxml 進步到 2.6,解決方案已經出現。 loadHTML 函數現在接受一個 $option 參數來控制如何解析內容。
為了解決這個問題,我們可以使用以下選項來載入 HTML:
$html->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
這些選項會停用自動新增隱含的 html/body 元素並防止新增預設文件類型。此配置可確保在呼叫 saveHTML 時,輸出不會包含有問題的包裝器。
LIBXML_HTML_NOIMPLIED: Turns off the automatic adding of implied html/body elements. LIBXML_HTML_NODEFDTD: Prevents a default doctype from being added when one is not found.
有關Libxml 參數的完整文檔,請參閱:[Libxml 參數文檔](https://www.php .net/manual/en/libxml.constants.php#libxmlconstants.constants.html )
值得注意的是,雖然loadHTML 文件提到需要Libxml 2.6,LIBXML_HTML_NODEFDTD 僅在 Libxml 2.7.8 中可用,LIBXML_HTML_NOIMPLIED 在 Libxml 2.7.7 中可用。
以上是如何從 DOMDocument 儲存 HTML,而不使用不必要的包裝標籤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!