Maison > base de données > tutoriel mysql > le corps du texte

Exemple de code de traitement PHP pour la conversion entre tableaux et XML

怪我咯
Libérer: 2017-07-11 16:37:44
original
1709 Les gens l'ont consulté

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 simple est de parcourir le tableau puis de convertir la clé du tableau. /value Convertissez-le en un nœud XML, puis faites-le écho directement pour la sortie, par exemple :

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; 
}
Copier après la connexion

Je l'ai testé, c'est le plus simple, le plus rapide, prend principalement en charge les tableaux et les caractères chinois ne le seront pas. brouillé.
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(); 
}
Copier après la connexion

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 soumises par d'autres au format XML, telles que les interfaces WeChat courantes, les interfaces Alipay, etc. Leurs interfaces telles que Envoyer un message sont toutes au format XML, nous trouvons donc 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>
Copier après la connexion

Analysez et lisez les données XML via simplexml_load_string(), puis convertissez-les d'abord au format json, puis convertissez-les en un 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; 

}
Copier après la connexion

Appelez xmlToArray() pour obtenir les résultats suivants :


Après avoir obtenu le tableau, nous pouvons effectuer diverses opérations sur les données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!