cURL

유영·2023년 6월 19일
0

PHP

목록 보기
57/57

■ CURL (Client URL Library Functions)

  • 커맨드 라인에서 URL 문법을 사용하여 파일을 전송하는

    내가 원하는 주소의 페이지에 임의의 값을 전달하고 리턴 값을 받아오는 역할

    curl 모듈을 사용하기 위해서는 curl 모듈을 서버에 설치하여야 한다.

■ CURL 함수 정리

  • curl_init : 세션 초기화, 핸들값 리턴
  • curl_setopt : 옵션 세팅 (옵션값에 대해서는 하단에 추가 설명)
  • curl_exec : curl 실행
  • curl_errno : 에러 발생 시 에러번호를 가져온다.
  • curl_error : 에러 발생 시 에러메시지를 가져온다.
  • curl_getinfo : 상태 정보를 리턴한다.
  • 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);       //에러 정보 출력

0개의 댓글