To prevent a parser error when the comment string would contain the character sequence "--", do this:
<?php
$CommentString = 'This contains -- some weird -- characters.';
$CommentNode = $DomDocument->createComment(
str_replace('--', '-'.chr(194).chr(173).'-', $CommentString)
);
?>
This will insert a Soft Hyphen in between the two hyphens which will not cause the parser to error out.
DOMDocument::createComment
(PHP 5)
DOMDocument::createComment — Crée un nouveau noeud de commentaire
Description
Cette fonction crée une nouvelle instance de la classe DOMComment. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().
Liste de paramètres
-
data -
Le contenu du commentaire.
Valeurs de retour
Le nouveau DOMComment ou FALSE si une erreur survient.
Voir aussi
- DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils
- DOMDocument::createAttribute() - Crée un nouvel attribut
- DOMDocument::createAttributeNS() - Crée un nouvel attribut avec un espace de noms associé
- DOMDocument::createCDATASection() - Crée un nouveau noeud cdata
- DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
- DOMDocument::createElement() - Crée un nouveau noeud
- DOMDocument::createElementNS() - Crée un nouveau noeud avec un espace de noms associé
- DOMDocument::createEntityReference() - Crée un nouveau noeud de référence d'entité
- DOMDocument::createProcessingInstruction() - Crée un nouveau noeud PI
- DOMDocument::createTextNode() - Crée un nouveau noeud de texte
php dot sirlancelot at spamgourmet dot com ¶
3 years ago
capps at solareclipse dot net ¶
6 years ago
Use caution: this function does NOT escape, encode, or otherwise change the contents of the string.
This means that if your string contains two hyphens in a row (--), that will *end* the comment, which can easily create invalid XML when the document is serialized.
