[PHP] PHP 를 이용하여 XML 파싱하는 간단 예제 feat. cURL
PHP 를 통해서 xml 문서를 파싱하여 원하는 정보를 표시하는 방법을 알아봅시다. 간단한 예제를 한줄한줄 해석하는 방식이 편하겠네요. 파싱 대상이 되는 xml 문서의 주소는 아래와 같습니다.
http://suggestqueries.google.com/complete/search?output=toolbar&q=korea
구글이 제공하는 연관검색어 xml 파일인데, korea 라는 키워드의 연관 검색어를 cURL 을 이용해 뽑아내어볼 예정입니다. 예제는 아래와 같습니다. 미리 선수치자면, 저는 문돌이라서 코딩 용어의 사용이 미숙하니 대충 봐주세요.
$url = 'http://suggestqueries.google.com/complete/search?output=toolbar&q=korea';
$ch = cURL_init();
cURL_setopt($ch, CURLOPT_URL, $url);
cURL_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = cURL_exec($ch);
cURL_close($ch);
$object = simplexml_load_string($response);
$suggest0 = $object->CompleteSuggestion[0]->suggestion["data"];
echo $suggest0;
변수에 주소 담기
$url = 'http://suggestqueries.google.com/complete/search?output=toolbar&q=korea';
먼저 파싱의 대상이 되는 xml 파일의 주소를 변수에 담습니다. 그래야 나중에 꺼내 사용하기 편하니까요.
파싱 대상을 담을 구조체 초기화
$ch = cURL_init();
ch 라는 변수에 파싱 대상을 담을 것입니다. 그러기 위해서 초기화 해줍니다.
옵션 지정하기
cURL_setopt($ch, CURLOPT_URL, $url);
변수 ch 에 파싱 대상이 url 변수에 담긴 주소에 있다고 설정해줍니다.
cURL_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
그리고 파싱한 결과를 string 형식으로 반환하도록 설정해줍니다. cURL 의 옵션 설정에 대한 자세한 내용은 php.net을 확인 하세요.
결과물 담기
$response = cURL_exec($ch);
cURL_close($ch);
이제 실제로 ch 변수에서 이전에 설정한대로 파싱을 실시해 response 라는 변수에 담습니다. 그리고 ch 는 이제 더이상 필요하지 않으므로 닫아버립니다.
실질적인 데이터 추출
xml 파일 자체를 추출하는데 성공 했으니, 그 내용을 가져와 보도록 합니다.
$object = simplexml_load_string($response);
$suggest = $object->CompleteSuggestion[0]->suggestion["data"];
string 형식으로 가져온 xml 파일을 object 라는 변수에 구조체 형식으로 담아줍니다. 그리고 해당 구조체의 가장 첫번째 아이템의 data 라는 attribute 의 내용을 가져와 suggest0 라는 변수에 담아줍니다.
echo $suggest;
이제 마지막으로 suggest 를 출력합니다.
내용이 길어졌지만 차근차근 보면 어려울게 없습니다.
끝.
댓글 남기기