我一直試圖通過使用HTML DomObject解析網頁,以便使用它們爲應用程序掃描SEO質量。如何防止PHP DomDocument「修復」您的HTML字符串
但是我遇到了一個問題的問題。出於測試目的,我寫了一個小的html頁面包含以下不正確的HTML:
<head>
<meta name="description" content="randomdesciption">
</head>
<title>sometitle</title>
正如你可以看到標題是外head標籤至極是我試圖檢測錯誤。
現在問題出現了,當我使用curl從該頁面捕獲響應字符串,然後將其發送到dom文檔以將其加載爲HTML時,它實際上通過在標題周圍添加了另一個標籤來修復此問題。
<head>
<meta name="description" content="randomdesciption">
</head>
<head><title>sometitle</title></head>
我已經檢查了捲曲性反應的數據和INFACT是沒有問題的,不知何故loadHTML的執行()方法固定HTML語法中的PHP的DomDocument。
我也嘗試關閉DomDocument恢復,substituteEntities和validateOnParse屬性設置爲false,沒有成功。
我一直在尋找谷歌,但我無法找到任何答案,迄今。我想對於一些實際上希望破解的HTML沒有被修復的人來說,這是非常罕見的。
任何人都知道如何防止DomDocument修復我的壞HTML?
在此先感謝
你有沒有考慮傳遞之前,通過[整齊](http://php.net/tidy)上運行您的標記到DOM,甚至代替DOM?這是檢測標記錯誤的有用擴展。 – TML 2012-01-17 16:26:23
注意:這種行爲實際上與HTML中指定的一樣:'
'有一個可選的開始和結束標記,並且暗示存在像'