Signatur
Beschreibung
xmlwriter_end_comment() schließt einen XML-Kommentar-Block, der zuvor mit xmlwriter_start_comment() geöffnet wurde. Die Funktion schreibt die abschließende Zeichenfolge --> in den internen Puffer des XMLWriter-Objekts.
Typischerweise wird zunächst xmlwriter_start_comment() aufgerufen, dann der Kommentartext per xmlwriter_write_raw() eingefügt und anschließend der Block mit xmlwriter_end_comment() geschlossen. Alternativ kann für einzeilige Kommentare die Kurzform xmlwriter_write_comment() verwendet werden, die Start, Inhalt und Ende in einem Schritt erledigt.
Diese Funktion ist sinnvoll, wenn der Kommentarinhalt dynamisch zusammengesetzt werden muss oder wenn Kommentare mehrzeiligen Text enthalten sollen, der schrittweise erzeugt wird.
Die prozedurale Variante erwartet als ersten Parameter das XMLWriter-Ressourcen- bzw. Objekt-Handle. In der objektorientierten Schreibweise steht die Methode $writer->endComment() zur Verfügung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $writer Pflicht | XMLWriter | Das XMLWriter-Objekt (bzw. die Ressource in PHP < 8.0), auf das die Operation angewendet wird. |
Rückgabewert
true bei Erfolg zurück, false wenn kein offener Kommentar vorhanden ist oder ein interner Fehler aufgetreten ist.Beispiele
Kommentar manuell öffnen, befüllen und schließen
<?php
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(true);
$writer->startDocument('1.0', 'UTF-8');
$writer->startElement('root');
// Kommentar manuell öffnen
$writer->startComment();
$writer->text(' Dies ist ein mehrzeiliger\n XML-Kommentar ');
$writer->endComment(); // Kommentar schließen
$writer->endElement();
$writer->endDocument();
echo $writer->outputMemory();
Vergleich: writeComment() vs. start/endComment()
<?php
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(true);
$writer->startDocument('1.0', 'UTF-8');
$writer->startElement('config');
// Kurzform für einfache Kommentare
$writer->writeComment(' Generiert am ' . date('Y-m-d') . ' ');
// Langform für dynamischen Inhalt
$items = ['Wert A', 'Wert B', 'Wert C'];
$writer->startComment();
$writer->text(' Verfügbare Werte: ' . implode(', ', $items) . ' ');
$writer->endComment();
$writer->endElement();
$writer->endDocument();
echo $writer->outputMemory();
// Wichtig · Fallstricke
Achtung: XML-Kommentare dürfen die Zeichenfolge -- (doppelter Bindestrich) nicht enthalten, da dies laut XML-Spezifikation nicht erlaubt ist. xmlwriter_end_comment() validiert den Inhalt nicht automatisch — ungültiger Inhalt kann zu einem nicht wohlgeformten XML-Dokument führen.
Ab PHP 8.0 wird der Parameter $writer als XMLWriter-Objekt übergeben; in PHP 7 und früher war es eine Ressource. Die objektorientierte Entsprechung lautet XMLWriter::endComment().