본문으로 바로가기

curl - GET/POST method로 URL 호출

category 코딩/PHP 2012. 1. 17. 19:34

crul을 사용하는 이유

외부 링크의 페이지로 직접 접속되지 않고, URL을 한번 호출만 해야 함(유사 AJAX).

curl 설치(연동)

php.ini 파일에서 아래 부분 주석 처리를 없애고, 리눅스인 경우 설치되어 있는지 확인.

# cat /usr/local/apache/conf/php.ini | grep curl
;extension=php_curl.dll
# rpm -qa | grep curl
curl-7.15.5-9.el5_7.4
curl-7.15.5-9.el5_7.4
curl-devel-7.15.5-9.el5_7.4
curl-devel-7.15.5-9.el5_7.4
# yum install -y curl-devel <- 없다면 설치

TEST PC인 windows 7에 APM을 APMSETUP(http://www.apmsetup.com/)으로 설치하였는데

'트레이 우클릭>서버 환경 설정>PHP 확장' 에서 php_curl.dll 을 체크하였음.

예제 코드

function send() { 
    $url = "http://url";    // 호출대상 URL
    $ch = curl_init();      // 파라미터:url -선택사항

    curl_setopt($ch,CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch,CURLOPT_NOSIGNAL, 1);
    curl_setopt($ch,CURLOPT_POST, 1);       // Method를 POST로 지정

    $data = curl_exec($ch);
    $curl_errno = curl_errno($ch);
    $curl_error = curl_error($ch);

    curl_close($ch);
}

 

CURL 옵션 몇가지

CURLOPT_POSTFIELDS //POST Method일 경우 파라미터 값 정의

CURLOPT_HEADER //헤더 정보를 받을지 여부

CURLOPT_NOBODY //본문 정보를 받지 않음

 

함수

curl_exec($ch) /* curl을 실행 */

curl_errno($ch) /* 에러번호를 가져온다. */

curl_error($ch) /* 에러 메시지를 가져온다. */

curl_getinfo($ch) /* 상태 정보를 리턴한다. */