JOB/PHP2010. 7. 22. 11:23

안녕하세요? 네이버 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() 함수를 이용하시면 됩니다.

[출처] [TIP] PHP의 URL 변수 관리 (네이버 OpenAPI 공식 카페) |작성자 openapi

'JOB > PHP' 카테고리의 다른 글

eAccelerator 설치  (0) 2010.04.16
[날짜] 시작일~종료일 사이의 날짜 출력  (0) 2008.06.20
Posted by webfeel
JOB/PHP2010. 4. 16. 15:44

aix 5.3

 

export PHP_PREFIX="/web/app/php5"

 

$PHP_PREFIX/bin/phpize

./configure --enable-eaccelerator=shared \

--with-eaccelerator-userid=root \  <=== 에러발생하여 추가한부분

--with-php-config=$PHP_PREFIX/bin/php-config

 

make

make install

 

 

/web/app/php5/lib/php/extensions/no-debug-non-zts-20060613

eaccelerator.so 파일 확인

 

php.ini 에 

========================================================================

extension=eaccelerator.so

 

 

zend_extension="/web/app/php5/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so" <-- Linux인 경우만 추가. 설치경로와 맞게 지정
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

 

 

mkdir /htdoc/cache

chown nobody cache

chmod 0700 cache

 

 

참고문서 : http://eaccelerator.net/wiki/InstallFromSource

설치파일 : http://sourceforge.net/projects/eaccelerator/

Posted by webfeel
JOB/PHP2008. 6. 20. 15:30

$date_1 = "2008-05-29"; //시작일
$date_2 = "2008-06-10"; //종료일

$d1_data = explode("-",$date_1);
$d2_data = explode("-",$date_2);

$data1_str = " " . "$d1_data[1]" . "/" . "$d1_data[2]" . "/" . "$d1_data[0]";
$data2_str = " " . "$d2_data[1]" . "/" . "$d2_data[2]" . "/" . "$d2_data[0]";

$d1_strtotime = strtotime($data1_str);
$d2_strtotime = strtotime($data2_str);



while($d1_strtotime != $d2_strtotime){
                                    
$d1_strtotime = strtotime("+1 day",$d1_strtotime);
                                        
print $sing=date("Y-m-d",$d1_strtotime) . "<br>";

}

//RESULT
2008-05-30
2008-05-31
2008-06-01
2008-06-02
2008-06-03
2008-06-04
2008-06-05
2008-06-06
2008-06-07
2008-06-08
2008-06-09
2008-06-10


===============================================================================

$date_1 = "2008-05-29";
$date_2 = "2008-06-02";

$d1_data = explode("-",$date_1);
$d2_data = explode("-",$date_2);

$data1_str = " " . "$d1_data[1]" . "/" . "$d1_data[2]" . "/" . "$d1_data[0]";
$data2_str = " " . "$d2_data[1]" . "/" . "$d2_data[2]" . "/" . "$d2_data[0]";

$d1_strtotime = strtotime($data1_str);
$d2_strtotime = strtotime($data2_str);

$d1_strtotime = strtotime("-1 day",$d1_strtotime);

 

while($d1_strtotime != $d2_strtotime){
                                    
 $d1_strtotime = strtotime("+1 day",$d1_strtotime);
                                        
echo $sing=date("Y-m-d",$d1_strtotime) . "<br>";


}
//RESULT
2008-05-29
2008-05-30
2008-05-31
2008-06-01
2008-06-02

Posted by webfeel