Je suis nouveau ici et j'ai une question qui me tracasse toute la journée.Obtenir des entités numérotées XML avec PHP 5 DOM
J'ai créé un script PHP, qui lit le code source d'un site Web via cURL, puis utilise la classe DOMDocument pour générer un fichier sitemap.
Il fonctionne comme un charme dans presque tous les aspects. Le problème est avec les caractères spéciaux.
Pour des raisons de compatibilité, les fichiers de sitemap doivent avoir tous les caractères spéciaux codés en tant qu'entités numérotées. Et je ne réalise pas cela.
Par exemple, une de mes entrées - lire automatiquement les URL du site, et écrit au fichier sitemap - est:
http://www.somesite.com/serviços/redesign/
Sur le code source, il devrait ressembler à:
* http://www.somesite.com/servi ** ç ** os/redesign/*
Juste ceci. Mais malheureusement, je ne comprends vraiment pas comment le faire.
Fichier de code source, en-têtes de serveur, etc ... tout est encodé en UTF-8. J'utilise DOMDocument et les extensions associées pour générer le code XML. (Fondamentalement, DOMDocument, $ obj-> createElement, $ obj-> appendChild).
htmlentities donne & ccedil; au lieu de ç str_replace ne fonctionne pas. Cela fait disparaître le personnage dans la sortie. J'utilisais $ obj-> createElement ("loc", $ url); sur mon code, et maintenant je lis dans le manuel PHP que je devrais utiliser $ document-> createTextNode ($ page), pour avoir des entités codant le support.
Eh bien, cela ne fonctionne pas non plus.
Une idée sur la façon de se décoller de cela?
Merci.