본문 바로가기

프로그래밍/PHP

XML Parser Return Array


PHP 메뉴얼에 있는 예제입니다.
xml을 파싱해서 배열변수로 반환하네요.

좋습니다.

<?php
header("Content-Type: text/html; charset=UTF-8");

// Object를 Array로 반환하는 함수
function objectsIntoArray($arrObjData, $arrSkipIndices = array()){
    $arrData = array();
   
    // if input is object, convert into array
    if (is_object($arrObjData)) {
        $arrObjData = get_object_vars($arrObjData);
    }
   
    if (is_array($arrObjData)) {
        foreach ($arrObjData as $index => $value) {
            if (is_object($value) || is_array($value)) {
                $value = objectsIntoArray($value, $arrSkipIndices); // recursive call
            }
            if (in_array($index, $arrSkipIndices)) {
                continue;
            }
            $arrData[$index] = $value;
        }
    }
    return $arrData;
}

// 사용
$xmlUrl = "test.xml"; // XML feed file/URL
$xmlStr = file_get_contents($xmlUrl);
$xmlObj = simplexml_load_string($xmlStr);
$arrXml = objectsIntoArray($xmlObj);

// 결과 확인
echo "<pre>";
print_r($arrXml);
echo "</pre>";
?>