Maison > développement back-end > tutoriel php > Explication détaillée de la conversion entre tableaux et XML en PHP

Explication détaillée de la conversion entre tableaux et XML en PHP

墨辰丷
Libérer: 2023-03-29 11:08:02
original
1406 Les gens l'ont consulté

Cet article présente principalement comment utiliser PHP pour traiter la conversion entre les tableaux et XML. Il présente en détail comment PHP convertit le XML en tableaux et PHP convertit les tableaux en XML

. Au cours du développement, nous rencontrons souvent la conversion entre les tableaux et XML, en particulier lorsqu'il s'agit de développement d'interfaces. Par exemple, les autres clients envoient des données au format XML au serveur, et le programme sur celui-ci est responsable de la réception et de l'analyse, et. doit également fournir les données du tableau de données à des applications tierces au format 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é du tableau. /value Convertissez-le en 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 et 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(); 
}
Copier après la connexion

Il peut également convertir des tableaux en XML et prend en charge le multidimensionnel. tableau, 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 et la communication 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

Analyser et lire les données XML via simplexml_load_string(), puis les convertir au format json, puis converti 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; 

}
Copier après la connexion

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


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

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Basées sur php pour mettre en œuvre l'utilisation de codes QR paramétrés pour le développement WeChat

Comment utiliser PHP pour implémenter une exploration régulière des URL dans les pages

php+jQuery+Ajax pour implémenter la fonction d'actualisation de page asynchrone

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