インターネットの発展に伴い、企業間のデータ交換やデータ統合など、さまざまなインターフェースの重要性が高まっています。 PHP でインターフェイスを呼び出すプロセスでは、多くの場合、インターフェイスから返された XML を配列に変換する必要があります。そこでこの記事では、PHPでインターフェースを呼び出してXMLを配列に変換する方法を説明します。
1. インターフェイスの呼び出し方法
PHP でインターフェイスを呼び出す最も一般的な方法は、CURL ライブラリを使用することです。 CURL ライブラリを使用すると、GET、POST、PUT、DELETE、その他のリクエスト メソッドを含む HTTP リクエストを簡単に実行できます。 XML 形式でデータを返すインターフェイスを呼び出す必要があるとします。呼び出しプロセスは次のとおりです:
$curl =curl_init();
curl_setopt($curl, CURLOPT_URL, "http://example.com/api");
curl_setopt($curl , CURLOPT_RETURTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
$post_data = array(
'key' => 'value', 'key2' => 'value2'
);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$response = curl_exec($curl);
curl_close($curl);
上記のコードでは、$response は XML 形式のデータですインターフェイスによって返された場合は、配列に変換する必要があります。
2. XML から配列への変換方法
PHP の組み込み SimpleXML ライブラリを使用して、XML 形式のデータをオブジェクトまたは配列に変換できます。使用方法は以下の通りです。
$xml = simplexml_load_string($response);
print_r($xml);
$xml = simplexml_load_string($response);
$json = json_encode($xml);
$array = json_decode ($json, true);
print_r($array);
上記のコードでは、まず simplexml_load_string 関数を使用して XML 形式のデータをオブジェクトに変換し、次に json_encode を使用してオブジェクトを JSON 形式のデータに変換し、json_decode を使用して JSON 形式のデータを配列に変換することで、XML から配列への変換を実現します。
3. XML 形式の問題を回避する
上記の方法では、インターフェイスから返される XML 形式が標準化されていない場合、または問題がある場合、simplexml_load_string 関数の変換は失敗します。この状況を回避するには、PHP の組み込み DomDocument ライブラリを使用して XML 形式のデータを解析します。使用法は次のとおりです。
foreach ($doc->getElementsByTagName("*") as $node) {
//如果元素没有子元素,就获取元素值 if (!$node->hasChildNodes()) { $result[$node->nodeName] = $node->nodeValue; } else { //否则,递归获取子元素 foreach ($node->childNodes as $childNode) { if ($childNode->nodeType != XML_TEXT_NODE) { $result[$node->nodeName][] = array( $childNode->nodeName => $childNode->nodeValue ); } } }
以上がPHPインターフェースXMLを配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。