PHP:DOMDocument loadHTML在href中返回nesty URL错误

PHP:DOMDocument loadHTML在href中返回nesty URL错误,php,domdocument,Php,Domdocument,最近我在尝试实现一个特殊的模板引擎时遇到了一个异常 DOMDocument load的问题是,我在href中使用了一些占位符,之后将替换为实际值。我想存储该模板,并在每次需要时使用它,下面是代码示例 $this->dom = new DOMDocument; $load_html = $this->dom->loadHTML($html); HTML的nesty部分看起来像 <a href="@_@web_site_address@_@">Visi

最近我在尝试实现一个特殊的模板引擎时遇到了一个异常

DOMDocument load的问题是,我在href中使用了一些占位符,之后将替换为实际值。我想存储该模板,并在每次需要时使用它,下面是代码示例

    $this->dom = new DOMDocument;
    $load_html = $this->dom->loadHTML($html);
HTML的nesty部分看起来像

<a href="@_@web_site_address@_@">Visit our web site</a>
例外是

Fatal error: DOMDocument::loadXML() [<a href='domdocument.loadxml'>domdocument.loadxml</a>]: EntityRef: expecting ';' in Entity

我试图找到一种跳过该检查的方法,但什么也找不到。

这在PHP5.3中不会导致任何错误。你必须有一些其他的HTML是造成这一点。通常,当您使用一个没有;在它之后

<a href="#">Foo &nbsp Bar</a>

我也犯了同样的错误。寻找某个实体,而不是某个实体;在上面。浏览器将呈现这种情况,但它是不正确的。

这不会在PHP5.3中导致错误。你必须有一些其他的HTML是造成这一点。通常,当您使用一个没有;在它之后

<a href="#">Foo &nbsp Bar</a>

我也犯了同样的错误。寻找某个实体,而不是某个实体;在上面。浏览器将呈现该结果,但它不正确。

我发现了问题所在。在我的URL中,它是&sign,我将它替换为&;现在它工作了。

我发现了问题所在。在我的URL中,它是&sign,我将它替换为&;现在它开始工作了。

你真的在用@@作为占位符吗?那可能会引发它。我不明白为什么会有网站_address@_@如果强制出错,那么肯定有其他错误。你应该注意一个符号,我很确定你会在那里找到错误。正如我提到的,我正在创建一个带有占位符的模板系统,如果我放了一些不真实的URL,我会得到一个例外…你真的使用@作为占位符吗?那可能会引发它。我不明白为什么会有网站_address@_@如果强制出错,那么肯定有其他错误。你应该注意一个符号,我很确定你会在那里找到错误。正如我所提到的,我正在创建一个带有占位符的模板系统,如果我放了一些不是真实URL的东西,我会得到异常…相信我,这部分会导致错误,例如,尝试在HTML中放置和加载它会发生错误。看起来我必须改变整个系统的解析方式:相信我,这个部分会导致错误,例如,尝试在HTML中放置和加载它会发生错误。看起来我必须更改整个系统的解析方式: