Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung von Konvertierungsbeispielen zwischen PHP-Arrays und XML
In diesem Artikel wird hauptsächlich die Verwendung von PHP zur Verarbeitung der Konvertierung zwischen Arrays und XML beschrieben. Er stellt detailliert vor, wie PHP Arrays in XML konvertiert.
Während der Entwicklung stoßen wir häufig auf die Konvertierung zwischen Arrays und XML, insbesondere wenn es um die Schnittstellenentwicklung geht. Beispielsweise sendet der andere Client Daten im XML-Format an den Server, und das darauf befindliche Programm ist für den Empfang und die Analyse verantwortlich Außerdem muss die Datentabelle im XML-Format für Drittanwendungen bereitgestellt werden.
In diesem Artikel stellen wir kurz vor, wie Sie mit PHP die Konvertierung zwischen Arrays und XML durchführen.
Quellcode-Download: Konvertierung zwischen PHP-Array und XML
PHP konvertiert Array in XML
PHP kann Array in XML-Format konvertieren, Der einfache Weg besteht darin, das Array zu durchlaufen , dann den Schlüssel/Wert des Arrays in XML-Knoten umzuwandeln und dann die Ausgabe direkt wiederzugeben, wie zum Beispiel:
function arrayToXml($arr){ $xml = "<root>"; foreach ($arr as $key=>$val){ if(is_array($val)){ $xml.="<".$key.">".arrayToXml($val)."</".$key.">"; }else{ $xml.="<".$key.">".$val."</".$key.">"; } } $xml.="</root>"; return $xml; }
Ich habe es getestet , Dies ist die einfachste und schnellste Methode, unterstützt hauptsächlich Arrays und chinesische Schriftzeichen werden nicht verstümmelt.
Eine andere Methode ist die Verwendung von DOMDocument zum Generieren einer XML-Struktur:
function arrayToXml($arr,$dom=0,$item=0){ if (!$dom){ $dom = new DOMDocument("1.0"); } if(!$item){ $item = $dom->createElement("root"); $dom->appendChild($item); } foreach ($arr as $key=>$val){ $itemx = $dom->createElement(is_string($key)?$key:"item"); $item->appendChild($itemx); if (!is_array($val)){ $text = $dom->createTextNode($val); $itemx->appendChild($text); }else { arrayToXml($val,$dom,$itemx); } } return $dom->saveXML(); }
Es kann auch Arrays in XML konvertieren und unterstützt mehrdimensionale Arrays , wird das generierte XML-Chinesisch nicht verstümmelt.
PHP konvertiert XML in ein Array
Bei der Schnittstellenentwicklung stoßen Sie häufig auf Daten, die Ihnen von anderen im XML-Format übermittelt werden, z. B. gängige WeChat-Schnittstellen, Alipay-Schnittstellen usw. Ihre Schnittstellen wie Send Message liegen alle im XML-Format vor, daher finden wir zunächst einen Weg, diese XML-Daten abzurufen und sie dann in ein Array umzuwandeln.
Angenommen, wir erhalten ein XML wie dieses:
<root> <user> 月光光abcd</user> <pvs>13002</pvs> <ips> <baidu_ip>1200</baidu_ip> <google_ip>1829</google_ip> </ips> <date>2016-06-01</date> </root>
Parsen und lesen Sie XML-Daten über simplexml_load_string(), konvertieren Sie sie dann zuerst in das JSON-Format und dann in ein Array.
function xmlToArray($xml){ //禁止引用外部xml实体 libxml_disable_entity_loader(true); $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring),true); return $val; }
Rufen Sie xmlToArray() auf, um die folgenden Ergebnisse zu erhalten:
Nachdem wir das Array erhalten haben, können wir verschiedene Operationen ausführen auf die Art der Verarbeitung.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Konvertierungsbeispielen zwischen PHP-Arrays und XML. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!