반응형
공공데이터 포털에서 제공하는 전국 병.의원찾기 OpenAPI를 활용한 프로젝트 진행중
API가 제공하는 데이터포맷이 xml이다.
PHP로 REST API를 받아오고 받아온 xml파일을 파싱해보자!
1. curl 을 이용
url을 변수에 담고
요청 인수를 queryParams에 추가해준다.
$ch = curl_init(); //파싱 대상을 담을 $ch변수를 초기화
$url = 'http://apis.data.go.kr/B552657/HsptlAsembySearchService/getHsptlMdcncListInfoInqire'; /*URL*/
$queryParams = '?' . urlencode('ServiceKey') . '=*********'; /*Service Key*/
$queryParams .= '&' . urlencode('Q0') . '=' . urlencode('서울특별시'); //요청인수
# Windows 환경에서 curl_init 함수가 작동하지 않는다면
php.ini 내부의
;extension=php_curl.dll
의 주석을 풀어주기!! ( ; 제거)
수정후 파일을 저장하고 아파치 서버를 재시작하기!
cmd 에서
httpd -k restart
2. curl 설정후 실행
실행시킨 결과를 respone에 담는다.
curl은 닫아줌
curl_setopt($ch, CURLOPT_URL, $url . $queryParams); //파싱 대상 설정
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //파싱한 결과를 string 형식으로 반환하도록 설정
$response = curl_exec($ch);
curl_close($ch);
3. 데이터를 추출하기 위해 변환
string 형식으로 가져온 xml 파일을 object 라는 변수에 구조체 형식으로 담아줌
$object = simplexml_load_string($response);
$items = $object->body->items->item;
var_dump($items);
item의 결과가 배열이기때문에 필요한 데이터만 foreach문으로 반복해서 출력해주면
foreach ($items as $item) {
echo($item->dutyName)."<br>";
echo($item->dutyAddr)."<br>"."<br>";
}
반응형
'WEB > PHP' 카테고리의 다른 글
[PHP] 배열에 요소 추가, 랜덤 요소 출력 (0) | 2020.10.12 |
---|---|
[PHP] 문자열 HTML화, htmlspecialchars() (0) | 2020.09.22 |
[PHP] isset() , empty() (0) | 2020.09.11 |
[PHP]MySQL_JOIN (+ambiguous error) (0) | 2020.09.09 |
[PHP] MySQL_SELECT : PDO fetch(), fetchAll(); (0) | 2020.09.08 |