1
일부 노드를 추가하기 위해 일부 html을 PHP로 구문 분석하려고하지만 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
DOMDocument() 기능은 올바른 HTML 용으로 작성되었습니다. 앱이 깨진 HTML을 제공하는 제어되지 않은 소스로부터 입력을 받으면 유틸리티를 사용하여 입력하기 전에 정리해야합니다.이 라이브러리는 http://htmlpurifier.org/docs 또는 http://php.net입니다. /manual/en/book.tidy.php – motanelu