Bonjour,
J'ai un peu personnalisé la classe DOM pour lui attribuer des valeurs par défaut et me faciliter ainsi un petit peu la vie. Mais j'ai un problème:
Lorsque que je l'utilise comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?php class xml extends DOMDocument { public function __construct($encoding, $template) { parent::__construct('1.0', $encoding); $pi = parent::createProcessingInstruction('xml-stylesheet', 'type="text/xsl" href="'.$template.'"'); parent::appendChild($pi); } public function createElement($name, $content) { if (empty($content)) { return parent::createElement($name); } else { return parent::createElement($name, utf8_encode($content)); } } } ?>
Il m'affiche le titre du site avec des caractères spéciaux tandis que le message d'erreur normalement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php function error_handler($level, $message) { switch ($level) { case E_USER_ERROR: $xml = new xml('UTF-8', DIR_TPL.'error.xsl'); $document = $xml->createElement('document'); $xml->appendChild($document); $title_website = $xml->createElement('title_website', utf8_encode($GLOBALS['title'])); $document->appendChild($title_website); $error = $xml->createElement('error', utf8_encode($message)); $document->appendChild($error); echo $xml->saveXML(); break; } } ?>
Je comprends rien :s
Et ça se produit exactement de la même façon mais inversement si je retire utf8_encode(): le titre s'affiche normalement et le message d'erreur avec des caractères spéciaux.
Merci de votre aide.
Partager