[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 함수를 사용할 수 있는 환경이어야 한다.

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.