본문 바로가기
PHP

[PHP] CURL (Get, Post)

by BeomBe 2023. 11. 16.
반응형

CURL(Client URL) 이란?

다양한 프로토콜로 데이터 전송이 가능한 Command Line Tool

 

CURL 함수 (*더 많은 함수가 있습니다)

  • curl_init : 세션 초기화, 핸들값 리턴
  • curl_setopt : 옵션 세팅
  • curl_exec : curl 실행
  • curl_errno : 에러 발생 시 에러번호를 가져옴
  • curl_error : 에러 발생 시 에러메시지를 가져옴
  • curl_getinfo : 상태 정보를 리턴
  • curl_close : curl 세션 close

CURL_SETOPT 옵션 값

  • CURLOPT_FOLLOWLOCATION : TRUE로 설정 시 HTTP 헤더로 보내는 LOCATION헤더의 내용을 따름
  • CURLOPT_HEADER : TRUE로 설정 시 헤더의 내용을 출력
  • CURLOPT_NOBODY : TRUE로 설정 시 본문의 내용을 받지 않음
  • CURLOPT_ POST : 전송 Method 설정 (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(
    'test1' => 'test1',
    'test2' => 'test2',
);

$url = "https://API URL/?test1={$test1}&test2={$test2}

$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(
	'test1' => 'test1',
	'test2' => 'test2',
);

$url = "API URL";
 
$ch = curl_init();                                 //curl 초기화
curl_setopt($ch, CURLOPT_URL, $url);               //URL 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    //요청 결과를 문자열로 반환 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);       //connection timeout 3초 
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;

 

자세한 내용은 PHP Manual을 참조하길 바랍니다.

https://www.php.net/manual/en/book.curl.php

반응형