Maison  >  Article  >  développement back-end  >  PHP gère la conversion entre les tableaux et XML

PHP gère la conversion entre les tableaux et XML

高洛峰
高洛峰original
2016-12-22 14:48:391003parcourir

Lors du développement, nous rencontrons souvent la conversion entre les tableaux et XML, notamment lorsqu'il s'agit de développement d'interfaces. Par exemple, l'autre client POST les données au format XML sur le serveur, et le programme sur le serveur est responsable de la réception et de la réception. analyse, et doit également fournir des données de table de données à des applications tierces au format XML.
Dans cet article, nous présenterons brièvement comment utiliser PHP pour gérer la conversion entre les tableaux et XML.

PHP convertit le tableau en XML
PHP peut convertir le tableau au format XML. Le moyen le plus simple consiste à parcourir le tableau, puis à convertir la clé/valeur du tableau en nœuds XML, puis à faire écho au format XML. sortie directement, telle que :

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;
}

Je l'ai testé, c'est le plus simple, le plus rapide, prend en charge principalement les tableaux et les caractères chinois ne seront pas tronqués.
Une autre méthode consiste à utiliser DOMDocument pour générer une structure XML :

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();
}

Il peut également convertir des tableaux en XML et prend en charge les tableaux multidimensionnels. Le chinois XML généré ne sera pas tronqué.

PHP convertit XML en tableau
Lors du développement d'interfaces, vous rencontrez souvent des données qui vous sont soumises par d'autres au format XML, telles que les interfaces WeChat courantes, les interfaces Alipay, etc. Leurs interfaces telles que l'envoi de messages La communication étant entièrement au format XML, nous trouvons d'abord un moyen d'obtenir ces données XML, puis de les convertir en tableau.
Supposons que nous obtenions un XML comme celui-ci :

<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>

Analysez et lisez les données XML via simplexml_load_string(), puis convertissez-les au format json Ensuite, convertissez-le en tableau.

function xmlToArray($xml){
 
 //禁止引用外部xml实体
 
libxml_disable_entity_loader(true);
 
$xmlstring = simplexml_load_string($xml, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA);
 
$val = json_decode(json_encode($xmlstring),true);
 
return $val;
 
}

L'appel de xmlToArray() peut obtenir les résultats suivants :

PHP gère la conversion entre les tableaux et XML

Après avoir obtenu le tableau , nous Vous pouvons effectuer divers traitements sur les données.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.

Pour plus d'articles liés à la conversion entre les tableaux de traitement PHP et XML, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn