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('<div>我就是测试看看</div>'); $dom = new DOMXPath($xml); echo $dom->query('//div')->item(0)->saveXML();
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('<?xml encoding="UTF-8">' . $html); foreach ($doc->childNodes as $item) { if ($item->nodeType == XML_PI_NODE) { $doc->removeChild($item); // remove hack } } $doc->encoding = 'UTF-8'; // insert proper
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) );
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 !