본문 바로가기
IT지식/개발

[PHP] CURL 사용하기. curl_exec() 문자 반환하기. CURLOPT_RETURNTRANSFER

by 7$ 2020. 3. 6.

 

//초기화

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://www.sample.com");


 //결과에 헤더값을 포함 (TRUE, FALSE)
curl_setopt($ch, CURLOPT_HEADER, FALSE);


//연결 대기 시간(초). 무한정 대기는 0
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 


//cURL 함수를 실행할 수있는 최대 시간 (초)
curl_setopt($ch, CURLOPT_TIMEOUT, 10);


//TRUE 설정 시 curl_exec () 반환 값의 문자열을 반환
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


//HTTP 요청에 사용되는 User-Agent 헤더 내용
curl_setopt($ch, CURLOPT_USERAGENT, "sample");


//FALSE로 설정 시 cURL이 피어의 인증서를 확인하지 못하게합니다. 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);


// 1 은 SSL 피어 인증서의 일반 이름의 존재를 확인합니다.
// 2 를 사용하여 공통 이름이 있는지 확인하고 제공된 호스트 이름과 일치하는지 확인
// 0 은 이름을 확인하지 않음. 프로덕션 환경에서이 옵션의 값은 2 (기본값) 로 유지해야합니다 .
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);


// TRUE는 일반 HTTP POST를 수행.
curl_setopt($ch, CURLOPT_POST, 1);


//HTTP "POST"작업으로 게시 할 전체 데이터. 
curl_setopt($ch, CURLOPT_POSTFIELDS, Array());

//CURL 실행
//curl_exec()의 결과는 Boolean 값. 출력되는 결과(문자)물을 받기위해서는 CURLOPT_RETURNTRANSFER 옵션을 사용해야 한다.
//여기서 헤매다가 file_get_contents를 사용했다가 지적.. 보안을 위해 file_get_contents는 지양.
$result = curl_exec($ch);


//CURLINFO_HTTP_CODE 정보(200 or 400)
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

//결과를 json 디코딩하여 출력. true 시 배열. 기본 오브젝트.
$recv = json_decode($result, true);

//curl 닫기
curl_close($ch);