Какие символьные объекты выводит DOMDocument?

Класс PHP DOMDocument испортил ввод UTF-8 если вы не подготовите свой вклад первым.

Например, этот код

<?php
echo mb_internal_encoding()."\n\n";

$str = '’';
$dom = new DOMDocument;
$dom->loadHTML($str);
echo $dom->saveHTML();

производит этот вывод

UTF-8
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>&acirc;&#128;&#153;</p></body></html>

&acirc;&#128;&#153; должно быть &rsquo;,

Я хочу знать все сущности персонажей, как &acirc;, что DOMDocument может создать, если вы не используете исправление. Есть ли где-нибудь список? Это в исходном коде PHP? Исходный код LibXML?

-1

Решение

Я думал о способе выяснить это, не читая никаких ссылок или исходного кода:

<?php

$str = '';

for ($i = 1; $i < 256; $i++) {

$str .= chr($i)."\n";
}

$str .= chr(0)."\n";

$dom = new DOMDocument;
$dom->loadHTML($str);
echo $dom->saveHTML();

Если вам нужен правильный список, я рекомендую запустить его в своей системе, чтобы получить собственный список, если он отличается в разных версиях PHP и т. Д.

Ожидайте много предупреждений, но без ошибок.

Вот вывод, который я получаю, за исключением того, что я удалил не символьные объекты с помощью текстового редактора:

&amp;
&#128;
&#129;
&#130;
&#131;
&#132;
&#133;
&#134;
&#135;
&#136;
&#137;
&#138;
&#139;
&#140;
&#141;
&#142;
&#143;
&#144;
&#145;
&#146;
&#147;
&#148;
&#149;
&#150;
&#151;
&#152;
&#153;
&#154;
&#155;
&#156;
&#157;
&#158;
&#159;
&nbsp;
&iexcl;
&cent;
&pound;
&curren;
&yen;
&brvbar;
&sect;
&uml;
&copy;
&ordf;
&laquo;
&not;
&shy;
&reg;
&macr;
&deg;
&plusmn;
&sup2;
&sup3;
&acute;
&micro;
&para;
&middot;
&cedil;
&sup1;
&ordm;
&raquo;
&frac14;
&frac12;
&frac34;
&iquest;
&Agrave;
&Aacute;
&Acirc;
&Atilde;
&Auml;
&Aring;
&AElig;
&Ccedil;
&Egrave;
&Eacute;
&Ecirc;
&Euml;
&Igrave;
&Iacute;
&Icirc;
&Iuml;
&ETH;
&Ntilde;
&Ograve;
&Oacute;
&Ocirc;
&Otilde;
&Ouml;
&times;
&Oslash;
&Ugrave;
&Uacute;
&Ucirc;
&Uuml;
&Yacute;
&THORN;
&szlig;
&agrave;
&aacute;
&acirc;
&atilde;
&auml;
&aring;
&aelig;
&ccedil;
&egrave;
&eacute;
&ecirc;
&euml;
&igrave;
&iacute;
&icirc;
&iuml;
&eth;
&ntilde;
&ograve;
&oacute;
&ocirc;
&otilde;
&ouml;
&divide;
&oslash;
&ugrave;
&uacute;
&ucirc;
&uuml;
&yacute;
&thorn;
&yuml;
0

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

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

По вопросам рекламы [email protected]