Solution au problème des caractères chinois tronqués lorsque DOMDocument enregistre du XML en PHP

高洛峰
Libérer: 2023-03-03 22:48:01
original
1841 Les gens l'ont consulté

DOMDocument en PHP n'a aucun problème avec les opérations XML tant qu'il est en anglais, mais s'il s'agit de polices chinoises, il y aura des caractères tronqués. Présentons quelques solutions à ce problème.

PHP L'interne. DOM est un mécanisme utf8. Lors du chargement de HTML, l'encodage est défini en vérifiant le jeu de caractères de la méta dans le caractère, il est traité comme iso8859. Dans ce cas, lors de la sauvegarde XML, la sortie est utf8. . , donc j'ai vu des caractères tronqués

Si vous ne comprenez pas bien, par exemple :

$xml = new DOMDocument();
@$xml->loadHTML(&#39;<div>我就是测试看看</div>&#39;);
$dom = new DOMXPath($xml);
echo $dom->query(&#39;//div&#39;)->item(0)->saveXML();
Copier après la connexion

Ouvrez le web. page Une fois exécuté, vous constaterez que la sortie est tronquée, alors comment résoudre ce problème ? Il y a deux manières.

La première : spécifier l'encodage lors du chargement du HTML. Le code suivant est extrait de la réponse dans le document officiel de php.net. Le code est le suivant :

$doc = new DOMDocument();
$doc->loadHTML(&#39;<?xml encoding="UTF-8">&#39; . $html);
foreach ($doc->childNodes as $item)
{
if ($item->nodeType == XML_PI_NODE)
{
$doc->removeChild($item); // remove hack
}
}
$doc->encoding = &#39;UTF-8&#39;; // insert proper
Copier après la connexion
.

La deuxième méthode : Reconvertir les caractères de sortie via iconv, le code est le suivant :

echo iconv("UTF-8", "GB18030//TRANSLIT", $dom->saveXML($n) );
Copier après la connexion

ci-dessus Ce qui précède est la solution au problème des caractères chinois tronqués lors de l'enregistrement de XML dans DOMDocument en PHP présenté par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et le. l'éditeur vous répondra à temps. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !


Pour plus de solutions PHP au problème du chinois tronqué lorsque DOMDocument enregistre du XML, veuillez prêter attention au site Web PHP chinois pour les articles connexes !


Étiquettes associées:
xml
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal