php curl 의 가장 간단한 예제와 옵션들을 알아보겠습니다.
CURL 이란 ?
Curl 은 PHP 를 사용하여 HTTP 요청과 응답을 보내고 받을 수 있는 라이브러리입니다.
HTTP에 요청 할 때
헤더 , 바디(데이터) 를 설정하고
쿠키를 처리하는 인터페이스를 제공합니다.
php curl 의 간단한 예제 입니다.
url 단순 호출 (get 요청)
<?php
// curl 생성
$ch = curl_init();
//url 추가
curl_setopt($ch, CURLOPT_URL, “https://www.example.com”);
//curl 실행
$result = curl_exec($ch); //$result에 요청 결과 저장
// curl 종료
curl_close($ch);
?>
post 요청
<?php
$data = array ( ‘apple’ , ‘banana’ ); //POST 전송할 데이터
// curl 생성
$ch = curl_init();
//url 추가
curl_setopt($ch, CURLOPT_URL, “https://www.example.com”);
//POST $data 추가
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//curl 실행
curl_exec($ch);
// curl 종료
curl_close($ch);
?>
php curl 옵션
*curl_exec($ch) 실행 이전에 curl_setopt ( ) 를 통해 여러 옵션을 넣을 수 있습니다.
curl_setopt ($ch , 옵션종류 , 옵션 값 );
cURL을 사용할 때 주로 사용되는 curl_setopt 함수의 옵션은 다음과 같습니다.
CURLOPT_URL : HTTP 요청을 보낼 URL을 설정합니다.
CURLOPT_RETURNTRANSFER : 서버 응답을 문자열로 반환하는지 여부를 설정합니다. 이 옵션을 사용하지 않으면 curl_exec() 함수가 true/false 값을 반환합니다.
CURLOPT_HTTPHEADER : HTTP 요청에 포함할 헤더를 설정합니다. 배열 형태로 전달됩니다.
CURLOPT_POST : HTTP POST 요청을 보낼지 여부를 설정합니다.
CURLOPT_POSTFIELDS : HTTP POST 요청 시 전송할 데이터를 설정합니다. 배열 또는 URL-encoded 문자열을 전달할 수 있습니다.
http_build_query($data) 결과 : foo=John+Doe&email=johndoe@example.com
CURLOPT_SSL_VERIFYHOST : 서버 SSL 인증서 호스트 이름 확인 여부를 설정합니다.
CURLOPT_SSL_VERIFYPEER : 서버 SSL 인증서 확인 여부를 설정합니다.
CURLOPT_FOLLOWLOCATION : 서버에서 리다이렉션 응답이 오면 자동으로 따르도록 설정합니다.
CURLOPT_TIMEOUT : 서버 응답 대기 시간 제한을 설정합니다. 초 단위로 전달됩니다.