■ CURL (Client URL Library Functions)
커맨드 라인에서 URL 문법을 사용하여 파일을 전송하는
내가 원하는 주소의 페이지에 임의의 값을 전달하고 리턴 값을 받아오는 역할
curl 모듈을 사용하기 위해서는 curl 모듈을 서버에 설치하여야 한다.
■ 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); //에러 정보 출력