[PHP] xml 포맷의 데이터를 배열(Array)로 변환
curl 등을 사용해 API 콜을 보내고 리턴 받은 xml 포맷의 데이터를 배열(Array)로 변환하는 코드이다.
<?php
function convertArray($object)
{
return json_decode( json_encode( $object ), 1 );
}
$url = 'http://api.example.com/xml';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$response = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($response);
$data = convertArray($xml);
print_r($data);
curl 실행 후 리턴된 $response 값을 simplexml_load_string 함수로 object 타입으로 변경하고 convertArray 함수를 이용해 배열(Array)로 변환하여 리턴한다. json_encode, json_decode 함수를 사용할 수 있는 환경이어야 한다.