1
我試圖用PHP解析一些html以添加一些節點,但是DOMDocument-> saveHTML的輸出沒有像預期的那樣工作,原因是href屬性是編碼。DOMDocument-> saveHTML與預期的href屬性無法正常工作
這是爲了檢查錯誤輸出的簡單代碼:
$html = "<a href='javascript:console.log(\"klk\");'>click here</a>";
$doc = new DOMDocument();
$doc->loadHTML($html);
echo $html . "\n";
echo "-----------------\n";
echo $doc->saveHTML($doc->getElementsByTagName('a')[0]) . "\n";
,這裏是輸出:
<a href='javascript:console.log("klk");'>click here</a>
-----------------
<a href="javascript:console.log(%22klk%22);">click here</a>
正如你可以看到出問題時將href屬性。
任何關於如何解決這個問題的想法?
測試/ Play網址:http://ideone.com/TsDhI3
這只是一個例子,問題是,HTML來自很多來源,我不能保修怎麼HTML被創建... – xabi
DOMDocument()功能是爲正確的HTML構建的。如果您的應用程序從不受控制的源發出亂碼的HTML輸入,則應在使用它之前使用實用程序對其進行清理。此庫爲http://htmlpurifier.org/docs或http://php.net /manual/en/book.tidy.php – motanelu