PHPにおける配列とXML間の変換について詳しく解説

墨辰丷
リリース: 2023-03-29 11:08:02
オリジナル
1370 人が閲覧しました

この記事では、主にPHPを使用して配列とXML間の変換を処理する方法を紹介します。PHPによるXMLから配列への変換方法と、PHPによる配列からXMLへの変換方法を詳しく紹介します。興味のある方は参考にしてください。たとえば、他のクライアントがデータを XML 形式でサーバーに POST し、それを解析するためにサーバー上のプログラムが処理する場合など、配列と XML の間の変換が頻繁に発生します。データ テーブル データを XML 形式でサードパーティ アプリケーションに提供します。



PHP は配列を XML に変換します

PHP は配列を XML 形式に変換できます。簡単な方法は、配列を走査し、配列のキー/値を XML ノードに変換し、出力を直接エコーすることです。

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; 
}
ログイン後にコピー

テストしてみたところ、これが最もシンプルで高速で、ほとんどの配列をサポートしており、中国語の文字は文字化けしません。

もう 1 つの方法は、DOMDocument を使用して 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(); 
}
ログイン後にコピー

配列を XML に変換することもでき、多次元配列をサポートし、生​​成された中国語の XML は文字化けしません。

PHP は XML を配列に変換します

インターフェイス開発を行う場合、一般的な WeChat インターフェイスや Alipay インターフェイスなど、メッセージの送信や通信などのインターフェイスはすべて XML 形式で送信されることがあります。フォーマットの場合、まずこの XML データを取得する方法を見つけてから、それを配列に変換します。
次のような XML を取得したとします。


 <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>
ログイン後にコピー

simplexml_load_string() 解析を通じて XML データを読み取り、まず json 形式に変換し、次に配列に変換します。配列を取得した後、データに対してさまざまな処理を実行できます。


要約: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。

関連する推奨事項:

php
に基づいて、WeChat 開発用のパラメーター化された QR コードの使用を実装する


PHP を使用してページ内の URL の定期的なクロールを実装する方法


php

+ jQuery +Ajaxで非同期ページ更新機能を実装


以上がPHPにおける配列とXML間の変換について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート