1
いくつかのノードを追加するためにPHPでいくつかのhtmlを解析しようとしていますが、DOMDocument-> saveHTMLの出力が期待通りに機能しませんコード化される。ここ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属性と間違って行く
これは間違った出力をチェックするために簡単なコードです。
どうすればこの問題を解決できますか?
テスト/プレイURL:http://ideone.com/TsDhI3
これは一例であるが、問題は、HTMLのソースのロットから来て、私はどのようにHTML保証できないということです... – xabi
正しいHTMLのためにDOMDocument()機能が構築されています。あなたのアプリが歪んだHTMLを出力するコントロールされていないソースから入力を受け取った場合、それを供給する前にユーティリティを使ってクリーンアップする必要があります。このライブラリはhttp://htmlpurifier.org/docsまたはhttp://php.netです/manual/ja/book.tidy.php – motanelu