我似乎已經完全加載有效的HTML到PHP DOMDocumnent一個問題。一些研究表明,這與libxml在腳本標籤內處理不好的內容有關。但是我一直無法找到解決這個問題的好方法。PHP + DOM文檔模板
我已經創建了一個簡單的測試案例:
來源:
<?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替換。在你的沙箱裏,這似乎在照顧它。加載後,您可以將其替換爲相反的。 –