Амперсанд в DOMDocument в атрибуте href элемента привязки и UTF-8

Я пытаюсь загрузить HTML в объект DOMDocument php. Но он не может загрузить элемент привязки с атрибутом href с амперсандом.
Это HTML-код для загрузки:

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

Как вы можете видеть, между abc а также def в строке запроса URL. Это текст UTF-8.
Загрузка этого в DOMDocument вызывает предупреждение, если амперсанд не удален. Предупреждение

Предупреждение: DOMDocument :: loadHTML (): htmlParseEntityRef: ожидая ‘;’ в Entity, строка: 2 in / in / MXN5X в строке 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

Как загрузить элемент привязки с амперсандом в объект DOMDocument?

1

Решение

У меня такая же проблема. ты должен использовать &amp; вместо & и это работает хорошо …

0

Другие решения

Других решений пока нет …