開発プロセスでは、データ形式の変換がよく問題になります。 PHP で一般的に使用される 2 つのデータ形式は、JSON と XML です。 JSON は読み書きが簡単な軽量のデータ交換形式であり、XML は Web データ送信や構成ファイルの保存に広く使用されている拡張可能なマークアップ言語です。
この記事では、PHP で JSON 形式を XML 形式に変換する方法を紹介します。
1. JSON から XML への変換
PHP には、JSON データを XML 形式に変換するために使用できる関数 json_decode() が用意されています。構文は次のとおりです。
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
このうち、$json は変換対象の JSON 文字列を表し、$assoc は JSON オブジェクトを連想配列に変換するかどうかを表します (デフォルトは false)。$ Depth は最大値を表します再帰の深さ (デフォルトは 512 )、 $options は変換オプションを表します (デフォルトは 0)。
次は、JSON 配列を XML に変換する例です:
<?php // JSON数据 $json_data = '{ "students": [ { "name": "David", "age": 20, "score": { "English": 90, "Math": 85, "Chinese": 95 } }, { "name": "Tom", "age": 22, "score": { "English": 80, "Math": 75, "Chinese": 85 } } ] }'; // 将JSON数据转换成PHP数组 $php_data = json_decode($json_data, true); // 将PHP数组转换成XML格式 $xml_data = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><data></data>'); array_to_xml($php_data, $xml_data); // 输出XML格式数据 header('Content-type: text/xml'); echo $xml_data->asXML(); // 将数组转换成XML格式的函数 function array_to_xml($arr, &$xml) { foreach ($arr as $key => $value) { if (is_array($value)) { if (!is_numeric($key)) { $subnode = $xml->addChild("$key"); array_to_xml($value, $subnode); } else { array_to_xml($value, $xml); } } else { $xml->addChild("$key", htmlspecialchars("$value")); } } } ?>
上記のコードは、まず JSON 文字列を PHP 配列に変換し、次に再帰関数を使用して PHP 配列を変換します。 XML 形式に変換します。
出力 XML 形式のデータは次のとおりです:
<?xml version="1.0" encoding="UTF-8"?> <data> <students> <0> <name>David</name> <age>20</age> <score> <English>90</English> <Math>85</Math> <Chinese>95</Chinese> </score> </0> <1> <name>Tom</name> <age>22</age> <score> <English>80</English> <Math>75</Math> <Chinese>85</Chinese> </score> </1> </students> </data>
2. XML から JSON
XML 形式を JSON 形式に変換するには、まず XML を PHP 配列に変換する必要があります。次に、 json_encode() 関数を使用して、PHP 配列を JSON 文字列に変換します。 XML を JSON に変換する例を次に示します。
children() as $element) { if (count($element->children()) == 0) { $arr[$element->getName()] = strval($element); } else { $arr[$element->getName()][] = xml_to_array($element); } } return $arr; } ?>
上記のコードは、最初に simplexml_load_string() 関数を通じて XML 文字列を SimpleXMLElement オブジェクトに変換し、次に再帰関数を通じて SimpleXMLElement オブジェクトを PHP 配列に変換します。関数。最後に、 json_encode() 関数を使用して、PHP 配列を JSON 文字列に変換します。
出力される JSON 形式のデータは次のとおりです。
{ "students": [ { "name": "David", "age": "20", "score": { "English": "90", "Math": "85", "Chinese": "95" } }, { "name": "Tom", "age": "22", "score": { "English": "80", "Math": "75", "Chinese": "85" } } ] }
概要
PHP には、JSON 形式から XML 形式へ、および XML 形式から JSON 形式へ変換するための便利な機能が用意されています。開発プロセス中に、実際のニーズに基づいて保存および交換に適切なデータ形式を選択することで、より優れたデータ送信および読み取り効果を実現できます。
以上がPHP での JSON および XML 形式の変換の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。