Start · Sprachen · PHP · Referenz · xmlrpc_encode

xmlrpc_encode

Funktion

Wandelt einen PHP-Wert in eine XML-RPC-konforme XML-Repräsentation um und gibt diese als String zurück.

seit PHP 4.1.0 Kategorie: xml

Signatur

xmlrpc_encode(mixed $value): string

Beschreibung

xmlrpc_encode() serialisiert einen PHP-Wert (Skalare, Arrays, Objekte) in das XML-RPC-XML-Format. Das Ergebnis ist ein vollständiger XML-String, der als Payload für XML-RPC-Anfragen oder -Antworten verwendet werden kann.

Die Funktion unterstützt alle grundlegenden PHP-Datentypen: int, double, bool, string sowie indizierte und assoziative Arrays. Assoziative Arrays werden dabei als XML-RPC-struct kodiert, indizierte Arrays als XML-RPC-array.

Diese Funktion gehört zur XMLRPC-Erweiterung, die in PHP als experimentell markiert ist und deren API sich ohne Vorwarnung ändern kann. Für neue Projekte empfehlen sich modernere Bibliotheken wie phpxmlrpc oder REST-basierte APIs.

Achtung: Die XMLRPC-Erweiterung ist seit PHP 8.0 als veraltet markiert und wurde in PHP 8.4 aus dem Kern entfernt. Sie steht nur noch als PECL-Paket zur Verfügung.

Parameter

Name Typ Default Beschreibung
$value Pflicht mixed Der PHP-Wert, der in XML-RPC-XML umgewandelt werden soll. Kann ein Skalar (int, float, bool, string), ein indiziertes Array (wird zu XML-RPC-array) oder ein assoziatives Array bzw. Objekt (wird zu XML-RPC-struct) sein.

Rückgabewert

Typ
string
Beschreibung
Gibt einen XML-String zurück, der den übergebenen PHP-Wert im XML-RPC-Format repräsentiert. Im Fehlerfall kann false zurückgegeben werden.

Beispiele

Einfachen Skalarwert kodieren

<?php
// Einen einfachen Integer-Wert in XML-RPC-XML umwandeln
$xml = xmlrpc_encode(42);
echo $xml;
<?xml version="1.0" encoding="iso-8859-1"?> <value><int>42</int></value>

Assoziatives Array als XML-RPC-struct kodieren

<?php
// Ein assoziatives Array wird als XML-RPC-struct serialisiert
$data = [
    'name'  => 'Max Mustermann',
    'age'   => 30,
    'admin' => false,
];

$xml = xmlrpc_encode($data);
echo $xml;
<?xml version="1.0" encoding="iso-8859-1"?> <value><struct> <member><name>name</name><value><string>Max Mustermann</string></value></member> <member><name>age</name><value><int>30</int></value></member> <member><name>admin</name><value><boolean>0</boolean></value></member> </struct></value>

Indiziertes Array als XML-RPC-array kodieren

<?php
// Ein indiziertes Array wird als XML-RPC-array serialisiert
$list = ['Apfel', 'Birne', 'Kirsche'];

$xml = xmlrpc_encode($list);
echo $xml;
<?xml version="1.0" encoding="iso-8859-1"?> <value><array><data> <value><string>Apfel</string></value> <value><string>Birne</string></value> <value><string>Kirsche</string></value> </data></array></value>

// Wichtig · Fallstricke

Deprecation-Hinweis: Die gesamte xmlrpc_*-Funktionsfamilie wurde in PHP 8.0 als veraltet (deprecated) markiert und in PHP 8.4 aus dem PHP-Kern entfernt. Für neue Projekte sollte stattdessen die PECL-Erweiterung oder eine externe Bibliothek wie phpxmlrpc verwendet werden.

Die Funktion ist als experimentell eingestuft. Das Verhalten, die Signatur und die Rückgabewerte können sich ohne vorherige Ankündigung ändern.

Beim Kodieren von Strings erfolgt keine automatische Zeichensatz-Konvertierung. Enthält der Eingabewert ungültige XML-Zeichen, kann das Ergebnis fehlerhaft sein. Eingaben sollten vor der Übergabe validiert werden.