Start · Sprachen · PHP · Referenz · wddx_packet_end

wddx_packet_end

Funktion

Schließt ein geöffnetes WDDX-Paket und gibt den fertigen WDDX-XML-String zurück.

seit PHP 4.0.0 Kategorie: xml

Signatur

wddx_packet_end(resource $packet_id): string|false

Beschreibung

wddx_packet_end() beendet ein zuvor mit wddx_packet_start() eröffnetes WDDX-Paket. Die Funktion schreibt den abschließenden XML-Tag des Pakets, gibt den vollständigen WDDX-XML-String zurück und gibt die zugehörigen Ressourcen frei.

WDDX (Web Distributed Data eXchange) ist ein XML-basiertes Format zum Serialisieren und Austauschen von Datenstrukturen zwischen verschiedenen Plattformen und Programmiersprachen. Ein typischer Workflow besteht aus: Paket öffnen (wddx_packet_start()), eine oder mehrere Variablen hinzufügen (wddx_add_vars()) und schließlich das Paket mit wddx_packet_end() abschließen.

Der zurückgegebene String enthält wohlgeformtes XML und kann direkt übertragen, in einer Datenbank gespeichert oder von einem anderen System deserialisiert werden. Für die einfache Serialisierung einzelner Werte steht alternativ wddx_serialize_value() zur Verfügung.

Achtung: Die gesamte WDDX-Erweiterung (ext/wddx) wurde mit PHP 7.4 als veraltet markiert und mit PHP 8.0 vollständig entfernt. Sie sollte in modernen Projekten nicht mehr verwendet werden.

Parameter

Name Typ Default Beschreibung
$packet_id Pflicht resource Die Ressourcen-ID des WDDX-Pakets, wie sie von wddx_packet_start() zurückgegeben wurde.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den vollständigen WDDX-XML-String zurück, wenn das Paket erfolgreich geschlossen werden konnte. Bei einem Fehler wird false zurückgegeben.

Beispiele

Einfaches WDDX-Paket erstellen und abschließen

<?php
// WDDX-Paket mit Kommentar öffnen
$packet_id = wddx_packet_start('Mein Testpaket');

// Variablen definieren und zum Paket hinzufügen
$name  = 'Max Mustermann';
$alter = 42;
wddx_add_vars($packet_id, 'name', 'alter');

// Paket abschließen und XML-String erhalten
$xml = wddx_packet_end($packet_id);

echo $xml;
<wddxPacket version='1.0'><header comment='Mein Testpaket'/><data><struct><var name='name'><string>Max Mustermann</string></var><var name='alter'><number>42</number></var></struct></data></wddxPacket>

WDDX-Paket mit Array-Daten serialisieren

<?php
// Array-Daten vorbereiten
$benutzer = [
    'id'    => 1,
    'email' => 'max@example.com',
    'aktiv' => true,
];

// Paket öffnen, Variable hinzufügen, abschließen
$packet_id = wddx_packet_start('Benutzerdaten');
wddx_add_vars($packet_id, 'benutzer');
$wddx_xml = wddx_packet_end($packet_id);

// XML z.B. in Datei speichern
file_put_contents('/tmp/benutzer.wddx', $wddx_xml);
echo 'WDDX-Datei wurde gespeichert.' . PHP_EOL;
echo $wddx_xml;
WDDX-Datei wurde gespeichert.

// Wichtig · Fallstricke

Deprecation: Die WDDX-Erweiterung wurde in PHP 7.4 als veraltet (deprecated) eingestuft und ist seit PHP 8.0 nicht mehr verfügbar. Bestehender Code sollte auf moderne Alternativen wie json_encode()/json_decode() oder serialize()/unserialize() umgestellt werden.

Nach dem Aufruf von wddx_packet_end() ist die übergebene Ressource ungültig und darf nicht mehr verwendet werden. Ein erneuter Aufruf mit derselben Ressource führt zu einem Fehler.