php - anchor 元素和 UTF-8 的 href 属性中 DOMDocument 中的 & 符号

标签 php domdocument ampersand

我尝试将一些 html 加载到 DOMDocument php 对象。但它无法加载具有属性 href 且其中包含 & 符号的 anchor 元素。 这是要加载的 html 代码:

<p>Jaźń</p>
<p>gęślą<a href="http://example.com/?abc&def">zażółć</a></p>
<p>Hello!</p>

如您所见,在 url 的查询字符串中,abcdef 之间有一个符号。它是 utf-8 文本。 将其加载到 DOMDocument 会导致警告,除非删除了 & 符号。警告是

Warning: DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity, line: 2 in /in/MXN5X on line 8

在我的 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);

在线版:https://3v4l.org/MXN5X

如何将带有 & 符号的 anchor 元素加载到 DOMDocument 对象?

最佳答案

我遇到了同样的问题。你应该使用 & 而不是 & 并且它运行良好......

关于php - anchor 元素和 UTF-8 的 href 属性中 DOMDocument 中的 & 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38495286/

相关文章:

php - 如何一步上传图片和文字?

svg - xlink中的&符号(&):href attributes of SVG images?

php - 从适用于 PHP 的 AWS 开发工具包提取 protected 请求响应

php - 创建 DOMDocument : match one certain element in a PHP-parser

php - 删除没有子 DOM PHP 的元素

php - 如何从<div>value</div>中获取值?

url - 搜索引擎对带有 & 而不是 & 的 URL 的处理方式相同吗?

ios - Xcode Singleton Undeclared Identifier 放大器

php - 用于 php 文件的 Composer PSR-4

带参数的 PHP header 位置