Signatur
Beschreibung
wddx_deserialize() nimmt einen WDDX-Paket-String entgegen und wandelt ihn in die entsprechende PHP-Datenstruktur um. WDDX (Web Distributed Data eXchange) ist ein XML-basiertes Format, das den Datenaustausch zwischen verschiedenen Programmiersprachen und Plattformen ermöglicht. Die Funktion analysiert das übergebene XML und gibt je nach Inhalt einen skalaren Wert, ein Array oder ein Objekt zurück.
Typische Anwendungsfälle sind das Einlesen von WDDX-Daten, die von einem anderen System (z. B. ColdFusion, Perl) erzeugt wurden, sowie das Wiederherstellen von Daten, die zuvor mit wddx_serialize_value() oder wddx_serialize_vars() serialisiert wurden.
Wichtig: Die WDDX-Erweiterung gilt als veraltet und wurde in PHP 7.4 als deprecated markiert sowie in PHP 8.0 vollständig entfernt. Für neue Projekte sollten moderne Alternativen wie json_encode()/json_decode() oder serialize()/unserialize() verwendet werden.
Die Funktion benötigt die libexpat-Bibliothek zur XML-Verarbeitung und ist nur verfügbar, wenn PHP mit WDDX-Unterstützung kompiliert wurde.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $packet Pflicht | string | Ein gültiger WDDX-Paket-String im XML-Format, wie er z. B. von wddx_serialize_value() erzeugt wird. |
Rückgabewert
false zurückgegeben.Beispiele
Einfache Deserialisierung eines WDDX-Pakets
<?php
// Ein zuvor serialisiertes WDDX-Paket (z. B. aus einer Datei oder Netzwerkantwort)
$packet = wddx_serialize_value(['name' => 'Max Mustermann', 'alter' => 30], 'Benutzerdaten');
echo "Paket: " . $packet . "\n";
// Deserialisierung zurück in ein PHP-Array
$data = wddx_deserialize($packet);
echo "Name: " . $data['name'] . "\n";
echo "Alter: " . $data['alter'] . "\n";
Deserialisierung eines WDDX-Pakets aus einer externen Quelle
<?php
// Beispielhaftes WDDX-Paket, das von einem externen System empfangen wurde
$wddxString = "<wddxPacket version='1.0'><header/><data><string>Hallo Welt</string></data></wddxPacket>";
$result = wddx_deserialize($wddxString);
if ($result === false) {
echo "Fehler beim Deserialisieren des WDDX-Pakets.\n";
} else {
echo "Ergebnis: " . $result . "\n";
}
// Wichtig · Fallstricke
Deprecation: wddx_deserialize() wurde in PHP 7.4 als veraltet (deprecated) markiert und in PHP 8.0 entfernt. Der Einsatz in modernen Projekten ist daher nicht empfehlenswert.
Sicherheitshinweis: Das Deserialisieren von Daten aus nicht vertrauenswürdigen Quellen birgt erhebliche Sicherheitsrisiken. Ein manipuliertes WDDX-Paket könnte unerwartete Objektstrukturen erzeugen. Eingehende WDDX-Daten sollten stets validiert werden, bevor sie deserialisiert werden.
Die Funktion steht nur zur Verfügung, wenn PHP mit der WDDX-Erweiterung (--enable-wddx) und der libexpat-Bibliothek kompiliert wurde. Auf vielen modernen Systemen ist diese Erweiterung nicht mehr standardmäßig aktiviert.