Signatur
Beschreibung
xmlwriter_start_comment() öffnet einen XML-Kommentar im aktuellen Ausgabestrom des XMLWriter-Objekts. Nach dem Aufruf dieser Funktion kann mit xmlwriter_text() der Kommentarinhalt geschrieben werden. Der Kommentar muss anschließend mit xmlwriter_end_comment() geschlossen werden.
Diese Funktion ist nützlich, wenn Kommentare mit mehrteiligem oder dynamisch erzeugtem Inhalt in ein XML-Dokument eingebettet werden sollen. Für einfache, einzeilige Kommentare mit festem Inhalt kann alternativ xmlwriter_write_comment() verwendet werden, das Öffnen, Inhalt und Schließen in einem einzigen Aufruf erledigt.
Die prozedurale Version dieser Funktion erwartet als ersten Parameter ein XMLWriter-Objekt (seit PHP 8.0 ein echtes Objekt, zuvor eine Ressource). In der objektorientierten Schreibweise steht die Methode als $writer->startComment() zur Verfügung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $writer Pflicht | XMLWriter | Das XMLWriter-Objekt, in dessen Ausgabestrom der Kommentar begonnen werden soll. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. wenn kein gültiger Schreibkontext vorhanden ist).Beispiele
Einfachen Kommentar mit xmlwriter_start_comment schreiben
<?php
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(true);
$writer->startDocument('1.0', 'UTF-8');
$writer->startElement('root');
// Kommentar manuell öffnen, Inhalt schreiben, schließen
$writer->startComment();
$writer->text(' Dies ist ein XML-Kommentar ');
$writer->endComment();
$writer->startElement('item');
$writer->text('Inhalt');
$writer->endElement();
$writer->endElement(); // root
$writer->endDocument();
echo $writer->outputMemory();
Dynamisch erzeugten Kommentar einfügen (prozedural)
<?php
$writer = xmlwriter_open_memory();
xmlwriter_set_indent($writer, true);
xmlwriter_start_document($writer, '1.0', 'UTF-8');
xmlwriter_start_element($writer, 'config');
$timestamp = date('Y-m-d H:i:s');
xmlwriter_start_comment($writer);
xmlwriter_text($writer, ' Generiert am: ' . $timestamp . ' ');
xmlwriter_end_comment($writer);
xmlwriter_start_element($writer, 'setting');
xmlwriter_text($writer, 'value');
xmlwriter_end_element($writer);
xmlwriter_end_element($writer); // config
xmlwriter_end_document($writer);
echo xmlwriter_output_memory($writer);
// Wichtig · Fallstricke
Achtung: XML-Kommentare dürfen die Zeichenfolge -- (zwei aufeinanderfolgende Bindestriche) nicht im Inhalt enthalten, da dies zu ungültigem XML führt. xmlwriter_text() maskiert diesen Fall nicht automatisch – die Eingabe muss daher vorher geprüft werden.
Ab PHP 8.0 ist der Parameter $writer immer ein XMLWriter-Objekt; in älteren Versionen handelte es sich um eine Ressource. Die prozedurale und die OOP-API sind funktional gleichwertig.