我尝试将一些html加载到DOMDocument php对象。但它无法加载具有带&符号的属性href的锚元素。 这是要加载的html代码:
<p>Jaźń</p>
<p>gęślą<a href="http://example.com/?abc&def">zażółć</a></p>
<p>Hello!</p>
正如您所看到的,在url的查询字符串中,abc
和def
之间存在&符号。它是utf-8文本。
除非删除&符号,否则将其加载到DOMDocument会导致警告。警告是
警告:DOMDocument :: loadHTML():htmlParseEntityRef:expecting';'在实体中,第8行/ 2英寸/ MXN5X
在我的phpunit中会导致错误。
代码是这样的:
<?php
$html = <<< 'WOW'
<p>Jaźń</p>
<p>gęślą<a href="http://example.com/?abc&def">zażółć</a></p>
<p>Hello!</p>
WOW;
$dom = new DOMDocument();
$dom->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8"), LIBXML_HTML_NODEFDTD);
如何将带有&符号的锚元素加载到DOMDocument对象?
答案 0 :(得分:0)
我遇到了同样的问题。你应该使用&
而不是&amp;它运行得很好......