■ CURL (Client URL Library Functions)
<순서>
1. curl_init() 으로 통신을 시작하고
2. curl_setopt_array()로 통신 옵션을 설정한다.
3. curl_exec() 로 결과를 받고
4. curl_close() 로 통신을 종료한다.
■ CURL 함수 정리
■ CURL_SETOPT 옵션 값
CURLOPTFOLLOWLOCATION : TRUE로 설정 시 HTTP 헤더로 보내는 LOCATION헤더의 내용을 따른다.
CURLOPT_HEADER : TRUE로 설정 시 헤더의 내용을 출력
CURLOPT_NOBODY : TRUE로 설정 시 본문의 내용을 받지 않는다.
CURLOPT POST : 전송 메서드 설정 (1-POST / 2-GET)
CURLOPT_RETURNTRANSFER : TRUE로 설정 시 curl_exec()의 반환 값을 문자열로 반환
CURLOPT_PORT : 연결 포트 설정
CURLOPT_TIMEOUT : 반환 값에 대한 타임아웃 설정
CURLOPT_POSTFIELDS : 'POST'로 보내는 데이터 정의
CURLOPT_REFERER : HTTP 요청에 사용되는 REFERER헤더의 내용
CURLOPT_URL : 접속할 URL 주소 설정
CURLOPT_USERAGENT : HTTP 요청에 사용되는 User-Agent헤더의 내용
■ cURL 사용법
1) GET 방식
$data = array(
'test' => 'test'
);
$url = "https://www.naver.com" . "?" , http_build_query($data, '', );
$ch = curl_init(); //curl 초기화
curl_setopt($ch, CURLOPT_URL, $url); //URL 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //요청 결과를 문자열로 반환
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); //connection timeout 10초
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //원격 서버의 인증서가 유효한지 검사 안함
$response = curl_exec($ch);
curl_close($ch);
return $response;
2) POST 방식
$data = array(
'test' => 'test'
);
$url = "https://www.naver.com";
$ch = curl_init(); //curl 초기화
curl_setopt($ch, CURLOPT_URL, $url); //URL 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //요청 결과를 문자열로 반환
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); //connection timeout 10초
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //원격 서버의 인증서가 유효한지 검사 안함
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //POST data
curl_setopt($ch, CURLOPT_POST, true); //true시 post 전송
$response = curl_exec($ch);
curl_close($ch);
return $response;
3) 결과 값 및 오류 확인
$response = curl_exec ($ch);
var_dump($response); //결과 값 출력
print_r(curl_getinfo($ch)); //모든 정보 출력
echo curl_errno($ch); //에러 정보 출력
echo curl_error($ch); //에러 정보 출력