PHP에서 cURL은 무엇입니까?


답변:


245

cURL 은 PHP로 HTTP 요청을 할 수있는 라이브러리입니다. 그것에 대해 알아야 할 모든 것 (그리고 대부분의 다른 확장명)은 PHP 매뉴얼 에서 찾을 수 있습니다 .

PHP의 cURL 함수를 사용하려면»libcurl 패키지를 설치해야합니다. PHP는 libcurl 7.0.2-beta 이상을 사용해야합니다. PHP 4.2.3에서는 libcurl 버전 7.9.0 이상이 필요합니다. PHP 4.3.0부터는 7.9.8 이상의 libcurl 버전이 필요합니다. PHP 5.0.0에는 libcurl 버전 7.10.5 이상이 필요합니다.

cURL 없이도 HTTP 요청을 할 수 있지만 파일 allow_url_fopen에서 활성화해야 php.ini합니다.

// Make a HTTP GET request and print it (requires allow_url_fopen to be enabled)
print file_get_contents('http://www.example.com/');

1
@Johannes, cURL없이 HTTP 게시 요청이 가능합니까?
Pacerier

2
서버 'allow_url_fopen'에서 활성화되어 있지 않으면 file_get_contents () 함수를 사용할 수 없지만 curl 함수를 같은 목적으로 사용할 수 있습니까? 나 맞아?
ARUN

3
@Arun 예 'allow_url_fopen'이 활성화되어 있지 않으면 file_get_contents () func 대신 동일한 작업에 curl을 사용할 수 있습니다. Curl을 사용하면 file_get_contents ()가 제공하지 않는 POST 데이터, 쿠키 등의 추가 옵션을 설정할 수 있습니다.
Dinesh Nagar

157

cURL은 코드에서 URL을 조회하여 HTML 응답을 얻을 수있는 방법입니다. cURL은 다른 URL과 연결하여 코드에서 응답을 사용할 수있는 클라이언트 URL을 의미합니다.


3
Javascript에서는 코드에서 아약스를 수행하는 것과 동일합니다. Javascript에서는 PHP가 동기식으로 수행하는 작업과 비 동기식으로 수행하는 작업이 다릅니다.
Faris Rayhan

68

PHP의 CURL :

요약:

curl_execPHP 의 명령 curl은 콘솔 에서 사용할 수있는 브리지 입니다. curl_exec를 사용하면 쉽고 빠르게 GET / POST 요청을 수행하고 JSON과 같은 다른 서버로부터 응답을 받고 파일을 다운로드 할 수 있습니다.

경고, 위험 :

curl인터넷에서 데이터를 가져 오는 것이 전부이기 때문에 잘못 사용하면 악하고 위험합니다. 누군가 컬과 다른 서버 사이에 rm -rf /들어가서 응답에 넣을 수 있는데 왜 콘솔에 ls -l빠졌고 더 이상 작동하지 않습니까? 당신은 컬의 위험한 힘을 과소 평가했기 때문에. 자신의 서버와 대화하는 경우에도 컬에서 안전하다고 생각되는 것을 믿지 마십시오. 멀웨어를 철회하여 부의 바보를 구할 수 있습니다.

예 :

이것은 우분투 12.10에서 수행되었습니다.

  1. 커맨드 라인에서 기본 컬 :

    el@apollo:/home/el$ curl http://i.imgur.com/4rBHtSm.gif > mycat.gif
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  492k  100  492k    0     0  1077k      0 --:--:-- --:--:-- --:--:-- 1240k
    

    그런 다음 파이어 폭스에서 GIF를 열 수 있습니다.

    firefox mycat.gif

    Toxoplasma gondii를 진화시키는 영광스러운 고양이는 여자가 고양이를 지키게하고 남자는 여자를 지키게합니다.

  2. cURL 예제는 google.com을 방문하라는 요청을 받고 명령 행에 에코합니다.

    이것은 phpsh 터미널을 통해 이루어집니다 :

    php> $ch = curl_init();
    
    php> curl_setopt($ch, CURLOPT_URL, 'http://www.google.com');
    
    php> curl_exec($ch);
    

    압축 된 HTML 및 자바 스크립트 (Google에서)를 콘솔로 인쇄하고 덤프합니다.

  3. cURL 예제는 응답 텍스트를 변수에 넣습니다.

    이것은 phpsh 터미널을 통해 이루어집니다 :

    php> $ch = curl_init();
    
    php> curl_setopt($ch, CURLOPT_URL, 'http://i.imgur.com/wtQ6yZR.gif');
    
    php> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
    php> $contents = curl_exec($ch);
    
    php> echo $contents;
    

    변수는 이제 고양이의 애니메이션 GIF 인 바이너리를 포함하며 가능성은 무한합니다.

  4. PHP 파일 내에서 컬을하십시오 :

    이 코드를 myphp.php 파일에 넣으십시오 :

    <?php
      $curl_handle=curl_init();
      curl_setopt($curl_handle,CURLOPT_URL,'http://www.google.com');
      curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
      curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
      $buffer = curl_exec($curl_handle);
      curl_close($curl_handle);
      if (empty($buffer)){
          print "Nothing returned from url.<p>";
      }
      else{
          print $buffer;
      }
    ?>
    

    그런 다음 커맨드 라인을 통해 실행하십시오.

    php < myphp.php

    myphp.php를 실행하고 PHP 인터프리터를 통해 해당 명령을 실행하고 지저분한 HTML과 자바 스크립트를 화면에 덤프했습니다.

    curl을 사용 GET하여 POST요청 및 요청을 수행 할 수 있습니다 . curl을 사용하여 HTTP 작업 자동화

위험 알림 :

컬 출력 결과를주의 깊게 덤핑하십시오. 어떤 것이 해석되고 실행되면 상자가 소유되며 신용 카드 정보가 제 3 자에게 판매되며 Alabama 1 인 바닥재 회사에서 신비한 $ 900의 요금을받습니다. 해외 신용 카드 사기 범죄 링 앞.


2
여기서 언급 한 '위험'을 백업하는 링크를 제공 할 수 있습니까?
floatingLomas

1
@floatingLomas Eric이 설명하려고하는 것은 사용자가 제공 한 모든 콘텐츠에 존재하는 문제입니다. 누구도 믿을 수 없습니다. 사용자가 제공 한 컨텐츠와 마찬가지로 간단한 MITM을 사용하여 cURL을 악용하여 악성 코드를 애플리케이션에 삽입 할 수 있습니다. 물론 이것은 Eric이 올바르게 언급 한 것처럼 "해석되고 실행" 되는 경우에만 문제가 됩니다. eval 만 검색 하면 악의적 이며 가능한 보안 위험이 많이 있습니다 (예 : stackoverflow.com/questions/951373/when-is-eval-evil-in-php )
Fabio Poloni

7
@floatingLomas ... 또한 Eric은 900 달러를 청구하는 앨라배마 원맨 바닥재 회사에 대해 편집증이있는 것 같습니다.
Fabio Poloni

iframe 외에 다른 대안이 있습니까?
Jennifer Michelle

1
그들이 정말로 당신을 마루를 팔기 위해 밖으로 나가면 편집증이 아닙니다.
piersb

24

cURL은 코드에서 URL을 입력하여 HTML 응답을 얻을 수있는 방법입니다. PHP 언어의 명령 행 cURL에 사용됩니다.

<?php
// Step 1
$cSession = curl_init(); 
// Step 2
curl_setopt($cSession,CURLOPT_URL,"http://www.google.com/search?q=curl");
curl_setopt($cSession,CURLOPT_RETURNTRANSFER,true);
curl_setopt($cSession,CURLOPT_HEADER, false); 
// Step 3
$result=curl_exec($cSession);
// Step 4
curl_close($cSession);
// Step 5
echo $result;
?> 

1 단계 :를 사용하여 컬 세션을 초기화합니다 curl_init().

2 단계 : 옵션을 설정합니다 CURLOPT_URL. 이 값은 요청을 보내는 URL입니다. curlparameter를 사용하여 검색어를 추가하십시오 q=. 에 대한 옵션을 설정하십시오 CURLOPT_RETURNTRANSFER. True는 curl이 문자열을 인쇄하지 않고 반환하도록 지시합니다. 옵션을 CURLOPT_HEADERfalse로 설정 하면 curl에서 반환 값의 헤더를 무시하도록 지시합니다.

3 단계 :를 사용하여 curl 세션을 실행합니다 curl_exec().

4 단계 : 생성 한 curl 세션을 닫습니다.

5 단계 : 리턴 문자열을 출력하십시오.

public function curlCall($apiurl, $auth, $rflag)
{
    $ch = curl_init($apiurl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    if($auth == 'auth') { 
        curl_setopt($ch, CURLOPT_USERPWD, "passw:passw");
    } else {
        curl_setopt($ch, CURLOPT_USERPWD, "ss:ss1");
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $dt = curl_exec($ch);        
    curl_close($ch);
    if($rflag != 1) {
        $dt = json_decode($dt,true);        
    }
    return $dt;
}

인증에도 사용됩니다. 인증을 위해 사용자 이름과 비밀번호를 설정할 수도 있습니다.

자세한 기능은 사용 설명서 또는 다음 자습서를 참조하십시오.

http://php.net/manual/en/ref.curl.php
http://www.startutorial.com/articles/view/php-curl


16

먼저 curl, libcurl 및 PHP / cURL의 개념을 이해하겠습니다.

  1. curl : URL 구문을 사용하여 파일을 가져 오거나 보내기위한 명령 줄 도구입니다.

  2. libcurl : Daniel Stenberg가 만든 라이브러리로, 다양한 유형의 프로토콜을 사용하여 다양한 유형의 서버에 연결하고 통신 할 수 있습니다. libcurl은 현재 http, https, ftp, gopher, telnet, dict, file 및 ldap 프로토콜을 지원합니다. libcurl은 HTTPS 인증서, HTTP POST, HTTP PUT, FTP 업로드 (PHP의 ftp 확장으로도 가능), HTTP 폼 기반 업로드, 프록시, 쿠키 및 사용자 + 암호 인증을 지원합니다.

  3. PHP / cURL : PHP 프로그램이 libcurl을 사용할 수있게하는 PHP 용 모듈.

사용 방법:

step1 : curl 세션 초기화 curl_init ()를 사용하십시오.

step2 : CURLOPT_URL에 대한 옵션을 설정하십시오. 이 값은 요청을 보내는 URL입니다. 매개 변수 "q ="를 사용하여 검색어 "curl"을 추가하십시오. CURLOPT_RETURNTRANSFER 옵션을 설정하면 true는 curl이 문자열을 인쇄하지 않고 반환하도록합니다. CURLOPT_HEADER에 대한 옵션을 설정하면 false는 curl에서 반환 값의 헤더를 무시하도록 지시합니다.

step3 : curl_exec ()를 사용하여 curl 세션을 실행하십시오.

step4 : 우리가 만든 curl 세션을 닫습니다.

step5 : 반환 문자열을 출력합니다.

데모 만들기 :

두 개의 PHP 파일을 작성하여 웹 서버가 PHP 파일을 제공 할 수있는 폴더에 배치해야합니다. 제 경우에는 간단하게 / var / www /에 넣었습니다.

1. helloservice.php2. demo.php

helloservice.php는 매우 간단하며 기본적으로 얻는 데이터를 에코합니다.

<?php
  // Here is the data we will be sending to the service
  $some_data = array(
    'message' => 'Hello World', 
    'name' => 'Anand'
  );  

  $curl = curl_init();
  // You can also set the URL you want to communicate with by doing this:
  // $curl = curl_init('http://localhost/echoservice');

  // We POST the data
  curl_setopt($curl, CURLOPT_POST, 1);
  // Set the url path we want to call
  curl_setopt($curl, CURLOPT_URL, 'http://localhost/demo.php');  
  // Make it so the data coming back is put into a string
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  // Insert the data
  curl_setopt($curl, CURLOPT_POSTFIELDS, $some_data);

  // You can also bunch the above commands into an array if you choose using: curl_setopt_array

  // Send the request
  $result = curl_exec($curl);

  // Get some cURL session information back
  $info = curl_getinfo($curl);  
  echo 'content type: ' . $info['content_type'] . '<br />';
  echo 'http code: ' . $info['http_code'] . '<br />';

  // Free up the resources $curl is using
  curl_close($curl);

  echo $result;
?>

2.demo.php 페이지에서 결과를 볼 수 있습니다 :

<?php 
   print_r($_POST);
   //content type: text/html; charset=UTF-8
   //http code: 200
   //Array ( [message] => Hello World [name] => Anand )
?>

안녕하세요, 당신은 페이지 1에 대해 말해 주시겠습니까
Kaveh

@Kaveh : 죄송합니다. 두 번째 페이지를 잊었습니다. 답변이 업데이트되었습니다. 지금 확인하십시오.
Anand Pandey 2016 년

12

PHP의 cURL 확장은 PHP 스크립트 내에서 다양한 웹 리소스를 사용할 수 있도록 설계되었습니다.



7

곱슬 곱슬하다

  • cURL은 코드에서 URL을 입력하여 HTML 응답을 얻을 수있는 방법입니다.
  • PHP 언어의 명령 행 cURL에 사용됩니다.
  • cURL은 PHP로 HTTP 요청을 할 수있는 라이브러리입니다.

PHP는 Daniel Stenberg가 만든 라이브러리 인 libcurl을 지원합니다.이 라이브러리는 다양한 유형의 프로토콜을 사용하여 다양한 유형의 서버에 연결하고 통신 할 수 있습니다. libcurl은 현재 http, https, ftp, gopher, telnet, dict, file 및 ldap 프로토콜을 지원합니다. libcurl은 HTTPS 인증서, HTTP POST, HTTP PUT, FTP 업로드 (PHP의 ftp 확장으로도 가능), HTTP 폼 기반 업로드, 프록시, 쿠키 및 사용자 + 암호 인증을 지원합니다.

cURL 지원으로 PHP를 컴파일하면 cURL 함수를 사용할 수 있습니다. cURL 함수의 기본 개념은 curl_init ()를 사용하여 cURL 세션을 초기화 한 다음 curl_setopt ()를 통해 전송에 대한 모든 옵션을 설정 한 다음 curl_exec ()를 사용하여 세션을 실행할 수 있다는 것입니다. curl_close ()를 사용하여 세션을 마치십시오.

샘플 코드

// error reporting
error_reporting(E_ALL);
ini_set("display_errors", 1);

//setting url
$url = 'http://example.com/api';

//data
$data = array("message" => "Hello World!!!");

try {
    $ch = curl_init($url);
    $data_string = json_encode($data);

    if (FALSE === $ch)
        throw new Exception('failed to initialize');

        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)));
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

        $output = curl_exec($ch);

    if (FALSE === $output)
        throw new Exception(curl_error($ch), curl_errno($ch));

    // ...process $output now
} catch(Exception $e) {

    trigger_error(sprintf(
        'Curl failed with error #%d: %s',
        $e->getCode(), $e->getMessage()),
        E_USER_ERROR);
}

자세한 내용은 다음을 확인하십시오.


1

컬은 리눅스 / 유닉스 커맨드 라인 툴을 위해 작성된 일반적인 curl 명령 및 라이브러리의 동작을 상속하는 PHP의 확장 일뿐입니다.

컬이란? cURL은 클라이언트 URL을 나타냅니다. cURL은 모든 URL로 데이터를 보내는 데 사용됩니다. 컬이 정확히 무엇인지에 대한 자세한 내용은 CURL 웹 사이트를 방문하십시오.

PHP의 cURL 이제 동일한 개념이 PHP에 도입되어 HTTP 또는 FTP와 같은 다른 프로토콜을 통해 액세스 가능한 URL로 데이터를 전송합니다. 자세한 내용은 PHP Curl Tutorial을 참조하십시오.


1

PHP 컬 기능 (POST, GET, DELETE, PUT)

function curl($post = array(), $url, $token = '', $method = "POST", $json = false, $ssl = true){
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, $url);    
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    if($method == 'POST'){
        curl_setopt($ch, CURLOPT_POST, 1);
    }
    if($json == true){
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json','Authorization: Bearer '.$token,'Content-Length: ' . strlen($post)));
    }else{
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSLVERSION, 6);
    if($ssl == false){
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    }
    // curl_setopt($ch, CURLOPT_HEADER, 0);     
    $r = curl_exec($ch);    
    if (curl_error($ch)) {
        $statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $err = curl_error($ch);
        print_r('Error: ' . $err . ' Status: ' . $statusCode);
        // Add error
        $this->error = $err;
    }
    curl_close($ch);
    return $r;
}

0

PHP 컬 클래스 (GET, POST, 파일 업로드, 세션, POST JSON 전송, 강제 자체 SSL / TLS) :

<?php
    // Php curl class
    class Curl {

        public $error;

        function __construct() {}

        function Get($url = "http://hostname.x/api.php?q=jabadoo&txt=gin", $forceSsl = false,$cookie = "", $session = true){
            // $url = $url . "?". http_build_query($data);
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, false);        
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 60);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            if($session){
                curl_setopt($ch, CURLOPT_COOKIESESSION, true );
                curl_setopt($ch , CURLOPT_COOKIEJAR, 'cookies.txt');
                curl_setopt($ch , CURLOPT_COOKIEFILE, 'cookies.txt');
            }
            if($forceSsl){
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 1, 2
            }
            if(!empty($cookie)){            
                curl_setopt($ch, CURLOPT_COOKIE, $cookie); // "token=12345"
            }
            $info = curl_getinfo($ch);
            $res = curl_exec($ch);        
            if (curl_error($ch)) {
                $this->error = curl_error($ch);
                throw new Exception($this->error);
            }else{
                curl_close($ch);
                return $res;
            }        
        }

        function GetArray($url = "http://hostname.x/api.php", $data = array("name" => "Max", "age" => "36"), $forceSsl = false, $cookie = "", $session = true){
            $url = $url . "?". http_build_query($data);
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, false);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 60);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            if($session){
                curl_setopt($ch, CURLOPT_COOKIESESSION, true );
                curl_setopt($ch , CURLOPT_COOKIEJAR, 'cookies.txt');
                curl_setopt($ch , CURLOPT_COOKIEFILE, 'cookies.txt');
            }
            if($forceSsl){
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 1, 2
            }
            if(!empty($cookie)){
                curl_setopt($ch, CURLOPT_COOKIE, $cookie); // "token=12345"
            }
            $info = curl_getinfo($ch);
            $res = curl_exec($ch);        
            if (curl_error($ch)) {
                $this->error = curl_error($ch);
                throw new Exception($this->error);
            }else{
                curl_close($ch);
                return $res;
            }        
        }

        function PostJson($url = "http://hostname.x/api.php", $data = array("name" => "Max", "age" => "36"), $forceSsl = false, $cookie = "", $session = true){
            $data = json_encode($data);
            $ch = curl_init($url);                                                                      
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);                                                                  
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 60);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            if($session){
                curl_setopt($ch, CURLOPT_COOKIESESSION, true );
                curl_setopt($ch , CURLOPT_COOKIEJAR, 'cookies.txt');
                curl_setopt($ch , CURLOPT_COOKIEFILE, 'cookies.txt');
            }
            if($forceSsl){
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 1, 2
            }
            if(!empty($cookie)){
                curl_setopt($ch, CURLOPT_COOKIE, $cookie); // "token=12345"
            }
            curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Authorization: Bearer helo29dasd8asd6asnav7ffa',                                                      
                'Content-Type: application/json',                                                                                
                'Content-Length: ' . strlen($data))                                                                       
            );        
            $res = curl_exec($ch);
            if (curl_error($ch)) {
                $this->error = curl_error($ch);
                throw new Exception($this->error);
            }else{
                curl_close($ch);
                return $res;
            } 
        }

        function Post($url = "http://hostname.x/api.php", $data = array("name" => "Max", "age" => "36"), $files = array('ads/ads0.jpg', 'ads/ads1.jpg'), $forceSsl = false, $cookie = "", $session = true){
            foreach ($files as $k => $v) {
                $f = realpath($v);
                if(file_exists($f)){
                    $fc = new CurlFile($f, mime_content_type($f), basename($f)); 
                    $data["file[".$k."]"] = $fc;
                }
            }
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");        
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    
            curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); // !!!! required as of PHP 5.6.0 for files !!!
            curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)");
            curl_setopt($ch, CURLOPT_TIMEOUT, 60);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            if($session){
                curl_setopt($ch, CURLOPT_COOKIESESSION, true );
                curl_setopt($ch , CURLOPT_COOKIEJAR, 'cookies.txt');
                curl_setopt($ch , CURLOPT_COOKIEFILE, 'cookies.txt');
            }
            if($forceSsl){
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 1, 2
            }
            if(!empty($cookie)){
                curl_setopt($ch, CURLOPT_COOKIE, $cookie); // "token=12345"
            }
            $res = curl_exec($ch);
            if (curl_error($ch)) {
                $this->error = curl_error($ch);
                throw new Exception($this->error);
            }else{
                curl_close($ch);
                return $res;
            } 
        }
    }
?>

예:

<?php
    $urlget = "http://hostname.x/api.php?id=123&user=bax";
    $url = "http://hostname.x/api.php";
    $data = array("name" => "Max", "age" => "36");
    $files = array('ads/ads0.jpg', 'ads/ads1.jpg');

    $curl = new Curl();
    echo $curl->Get($urlget, true, "token=12345");
    echo $curl->GetArray($url, $data, true);
    echo $curl->Post($url, $data, $files, true);
    echo $curl->PostJson($url, $data, true);
?>

PHP 파일 : api.php

<?php
    /*
    $Cookie = session_get_cookie_params();
    print_r($Cookie);
    */
    session_set_cookie_params(9000, '/', 'hostname.x', isset($_SERVER["HTTPS"]), true);
    session_start();

    $_SESSION['cnt']++;
    echo "Session count: " . $_SESSION['cnt']. "\r\n";
    echo $json = file_get_contents('php://input');
    $arr = json_decode($json, true);
    echo "<pre>";
    if(!empty($json)){ print_r($arr); }
    if(!empty($_GET)){ print_r($_GET); }
    if(!empty($_POST)){ print_r($_POST); }
    if(!empty($_FILES)){ print_r($_FILES); }
    // request headers
    print_r(getallheaders());
    print_r(apache_response_headers());
    // Fetch a list of headers to be sent.
    // print_r(headers_list());
?>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.