안녕하세요? 네이버 OpenAPI 담당자 입니다.
PHP를 이용하는 경우 주소 뒤에 붙게 되는 인수의 처리를 코드에 직접 삽입하는 경우가 많습니다.
10개 이내의 경우에 견딜만 하지만 10개가 넘어가기 시작하면 감당하기가 힘듭니다.
이 경우에는 http_build_query 함수와 $_GET 변수를 이용하면 도움이 됩니다.
예를 들어, 큰 love과 관련된 최신 이미지를 20개씩 검색하고 싶은 경우에 아래와 같은 URL 패턴을 만들게 됩니다.
http://openapi.naver.com/search?key=openapi&target=image&query=love&display=20&start=1&sort=date&filter=large
위 URL은 $_GET 변수에 배열로 저장되어 있습니다.
이것을 다시 URL로 만들고자 하는 경우에 http_build_query($_GET)을 사용하시면 기존의 URL 인수인 key=openapi&target=image&query=love&display=20&start=1&sort=date&filter=large 를 만들게 됩니다.
만약에 다음 페이지를 보고 싶은 경우에 어떻게 해야 할까요?
아래와 같은 방법을 사용하시면 편리하게 사용할 수 있습니다.
$params = $_GET;
$params['start'] += $images['display'];
$url_param = http_build_query($params);
display 되는 개수를 start 값에 더해주면 다음 페이지에 필요한 start 값을 알 수 있습니다.
그렇게 생성된 url_params를 이용하여 http://openapi.naver.com/search? 뒤에 붙여주면 되겠죠?
물론, 검색키는 항상 숨겨두셔야 하는 것! 잊지 마세요 :)
해당 함수는 PHP 5.1.2 버전 이상에서 사용할 수 있습니다.
php 설정에 따라서 & 형식으로 나오는 경우에는
php.ini 파일에서 arg_separator 를 변경하시거나,
ini_set('arg_separator.output', '&');을 수행 후 이용할 수 있습니다.
※ Python 에서는 urllib.urlencode() 함수를 이용하시면 됩니다.
'JOB > PHP' 카테고리의 다른 글
eAccelerator 설치 (0) | 2010.04.16 |
---|---|
[날짜] 시작일~종료일 사이의 날짜 출력 (0) | 2008.06.20 |