簡體   English   中英

錨點元素的href屬性和UTF-8中的DOMDocument中的“&”號

[英]Ampersand in DOMDocument in href attribute of an anchor element and 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>

如您所見,URL查詢字符串中的abcdef之間有一個&符。 它是utf-8文字。 除非刪除與號,否則將其加載到DOMDocument會引起警告。 警告是

警告:DOMDocument :: loadHTML():htmlParseEntityRef:期待';' 在實體中,第8行在/ in / MXN5X中的第2行

在我的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對象?

我有同樣的問題。 您應該使用&amp; 而不是&,並且運行良好...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM