IT지식/개발
[PHP] CURL 사용하기. curl_exec() 문자 반환하기. CURLOPT_RETURNTRANSFER
7$
2020. 3. 6. 17:06
//초기화
$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);