완벽하게 유효한 HTML을 PHP DOMDocumnent에로드하는 데 문제가있는 것 같습니다. 일부 연구는 이것이 libxml이 스크립트 태그 내에서 내용을 잘못 처리하는 것과 관련이 있음을 제시합니다. 그러나 나는 이것에 대해 좋은 방법을 찾을 수 없었습니다.PHP DOMDocument + Templates
나는 아래의 간단한 테스트 케이스를 만들었습니다
출처 :
출력<?php
$testData = "
<p>Foo bar ®</p>
<script id='tmpl-js' type='text/x-jsrender'>
<div>
{{for items}}
<div>
{{ tmpl='#item-tmpl-js'/}}
</div>
{{/for}}
</div>
</script>
<script id='item-tmpl-js' type='text/x-jsrender'>
<div>
{{title}}
</div>
</script>
";
$dom = new DOMDocument();
$dom->loadHTML($testData, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
:
WARNING DOMDocument::loadHTML(): Unexpected end tag : div in Entity, line: 9 on line number 25
WARNING DOMDocument::loadHTML(): Unexpected end tag : div in Entity, line: 11 on line number 25
WARNING DOMDocument::loadHTML(): Unexpected end tag : div in Entity, line: 17 on line number 25
사람이 주위에 얻을 수있는 방법을 알아 냈습니까? http://sandbox.onlinephpfunctions.com/code/9c658439fe277c0f99e1fb823150a4d14d03a693
가 대신 loadXML을 시도 했습니까? 나는 그것을 시도하고 주변 div 태그를 추가하여 예제에서 HTML을 볼 수있었습니다. –
하나의 이슈를 제거하고 다른 이슈가 나타납니다. 또한 콘텐츠에 HTML로 인코딩 된 엔티티가 있습니다. http://sandbox.onlinephpfunctions.com/code/7d4890b0bfe753168b2de46e9bc7bb4f55632086 – Hawxby
&를 % 20으로 대체하십시오. 당신의 샌드 박스에서, 그것은 그것을 보살 피는 것처럼 보였습니다. 적재 후 역순으로 교체 할 수 있습니다. –