Qu'est-ce que cURL en PHP?

Réponses:

245

cURL est une bibliothèque qui vous permet de faire des requêtes HTTP en PHP. Tout ce que vous devez savoir à ce sujet (et la plupart des autres extensions) peut être trouvé dans le manuel PHP .

Pour utiliser les fonctions cURL de PHP, vous devez installer le package »libcurl. PHP nécessite que vous utilisiez libcurl 7.0.2-beta ou supérieur. En PHP 4.2.3, vous aurez besoin de libcurl version 7.9.0 ou supérieure. Depuis PHP 4.3.0, vous aurez besoin d'une version de libcurl 7.9.8 ou supérieure. PHP 5.0.0 nécessite une version de libcurl 7.10.5 ou supérieure.

Vous pouvez également effectuer des requêtes HTTP sans cURL, bien qu'il doive allow_url_fopenêtre activé dans votre php.inifichier.

// Make a HTTP GET request and print it (requires allow_url_fopen to be enabled)
print file_get_contents('http://www.example.com/');
Johannes Gorset
la source
1
@Johannes, Les demandes de publication HTTP sont-elles possibles sans cURL?
Pacerier
2
cela signifie que si dans le serveur 'allow_url_fopen' n'est pas activé, nous ne pourrions pas utiliser la fonction file_get_contents (), mais dans ce cas, nous pouvons utiliser la fonction curl dans le même but? Ai-je raison?
ARUN
3
@Arun Oui si 'allow_url_fopen' n'est pas activé, vous pouvez utiliser curl pour la même tâche au lieu de file_get_contents () func. Curl vous permet de définir plus d'options comme les données POST, les cookies, etc. que file_get_contents () ne fournit pas.
Dinesh Nagar
157

cURL est un moyen de frapper une URL de votre code pour en obtenir une réponse html. cURL signifie URL client qui vous permet de vous connecter avec d'autres URL et d'utiliser leurs réponses dans votre code.

sushil bharwani
la source
3
en Javascript, c'est la même chose que vous ajax dans votre code. Les différentes choses avec PHP que vous faites de manière synchrone tandis qu'en Javascript vous faites de manière aysnchrone.
Faris Rayhan
68

CURL en PHP:

Résumé:

La curl_execcommande en PHP est un pont à utiliser curldepuis la console. curl_exec permet de faire facilement et rapidement des requêtes GET / POST, de recevoir des réponses d'autres serveurs comme JSON et de télécharger des fichiers.

Avertissement, danger:

curlest mauvais et dangereux s'il est utilisé de manière incorrecte, car il s'agit de récupérer des données sur Internet. Quelqu'un peut se mettre entre votre boucle et l'autre serveur et injecter un rm -rf /dans votre réponse, puis pourquoi suis-je tombé sur une console et ls -lne fonctionne même plus? Parce que vous avez sous-estimé la puissance dangereuse de la boucle. Ne faites pas confiance à tout ce qui revient de curl pour être sûr, même si vous parlez à vos propres serveurs. Vous pourriez retirer des logiciels malveillants pour soulager les imbéciles de leur richesse.

Exemples:

Cela a été fait sur Ubuntu 12.10

  1. Curl de base à partir de la ligne de commande:

    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

    Ensuite, vous pouvez ouvrir votre gif dans Firefox:

    firefox mycat.gif

    Chats glorieux évoluant Toxoplasma gondii pour amener les femmes à garder les chats autour et les hommes aussi à garder les femmes autour.

  2. exemple cURL get request to hit google.com, echo to the commandline:

    Cela se fait via le terminal phpsh:

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

    Qui imprime et décharge un désordre de html condensé et javascript (de google) sur la console.

  3. Exemple cURL mettre le texte de réponse dans une variable:

    Cela se fait via le terminal 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;

    La variable contient maintenant le binaire qui est un gif animé d'un chat, les possibilités sont infinies.

  4. Faites une boucle à partir d'un fichier PHP:

    Mettez ce code dans un fichier appelé 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;
      }
    ?>

    Ensuite, exécutez-le via la ligne de commande:

    php < myphp.php

    Vous avez exécuté myphp.php et exécuté ces commandes via l'interpréteur php et vidé une tonne de code HTML et javascript désordonné à filtrer.

    Vous pouvez faire GETet POSTdemander avec curl, tout ce que vous faites est de spécifier les paramètres définis ici: Utilisation de curl pour automatiser les travaux HTTP

Rappel de danger:

Faites attention à la sortie de la boucle, si une partie de celle-ci est interprétée et exécutée, votre boîte appartient et vos informations de carte de crédit seront vendues à des tiers et vous obtiendrez une charge mystérieuse de 900 $ d'une entreprise de revêtement de sol individuelle de l'Alabama qui est un avant pour l'anneau de crime de fraude de carte de crédit à l'étranger.

Eric Leschinski
la source
2
Pouvez-vous fournir un lien pour sauvegarder le «danger» que vous mentionnez ici?
floatingLomas
1
@floatingLomas Ce qu'Eric essaie d'expliquer est un problème qui est présent avec tout le contenu fourni par l'utilisateur: vous ne pouvez faire confiance à personne. Comme pour le contenu fourni par l'utilisateur, il est possible d'exploiter cURL à l'aide d'un simple MITM pour injecter du code malveillant dans votre application. Bien sûr, ce n'est un problème que s'il est "interprété et exécuté" comme Eric l'a déclaré correctement. Il suffit de rechercher l' eval est mauvais et vous trouverez de nombreux risques de sécurité possibles (par exemple stackoverflow.com/questions/951373/when-is-eval-evil-in-php )
Fabio Poloni
7
@floatingLomas ... aussi, Eric semble avoir une paranoïa au sujet des entreprises de revêtement de sol individuelles de l'Alabama qui lui font payer 900 $.
Fabio Poloni
Existe-t-il une alternative en plus de l'iframe?
Jennifer Michelle
1
Ce n'est pas de la paranoïa s'ils veulent vraiment vous vendre des revêtements de sol.
piersb
24

cURL est un moyen de frapper une URL de votre code pour en obtenir une réponse HTML. Il est utilisé pour la ligne de commande cURL du langage PHP.

<?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;
?> 

Étape 1: initialisez une session curl à l'aide de curl_init().

Étape 2: Définissez l'option pour CURLOPT_URL. Cette valeur est l'URL à laquelle nous envoyons la demande. Ajoutez un terme de recherche en curlutilisant le paramètre q=. Définissez l'option pour CURLOPT_RETURNTRANSFER. True indique à curl de renvoyer la chaîne au lieu de l'imprimer. Définissez l'option pour CURLOPT_HEADER, false indique à curl d'ignorer l'en-tête dans la valeur de retour.

Étape 3: Exécutez la session curl à l'aide de curl_exec().

Étape 4: fermez la session curl que nous avons créée.

Étape 5: sortie de la chaîne de retour.

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;
}

Ceci est également utilisé pour l'authentification. Nous pouvons également définir le nom d'utilisateur et le mot de passe pour l'authentification.

Pour plus de fonctionnalités, consultez le manuel d'utilisation ou le tutoriel suivant:

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

Neha Sinha
la source
16

Commençons par comprendre les concepts de curl, libcurl et PHP / cURL.

  1. curl : Un outil en ligne de commande pour obtenir ou envoyer des fichiers à l'aide de la syntaxe URL.

  2. libcurl : une bibliothèque créée par Daniel Stenberg, qui vous permet de vous connecter et de communiquer avec de nombreux types de serveurs différents avec de nombreux types de protocoles différents. libcurl prend actuellement en charge les protocoles http, https, ftp, gopher, telnet, dict, file et ldap. libcurl prend également en charge les certificats HTTPS, HTTP POST, HTTP PUT, le téléchargement FTP (cela peut également être fait avec l'extension ftp de PHP), le téléchargement basé sur le formulaire HTTP, les procurations, les cookies et l'authentification utilisateur + mot de passe.

  3. PHP / cURL : Le module pour PHP qui permet aux programmes PHP d'utiliser libcurl.

Comment l'utiliser:

étape 1 : initialiser une session curl, utilisez curl_init ().

étape 2 : définir l'option pour CURLOPT_URL. Cette valeur est l'URL à laquelle nous envoyons la demande. Ajoutez un terme de recherche "curl" en utilisant le paramètre "q =". Définissez l'option CURLOPT_RETURNTRANSFER, true indiquera à curl de renvoyer la chaîne au lieu de l'imprimer. Définissez l'option pour CURLOPT_HEADER, false indiquera à curl d'ignorer l'en-tête dans la valeur de retour.

étape 3 : Exécutez la session curl en utilisant curl_exec ().

étape 4 : Fermez la session curl que nous avons créée.

step5 : sortie de la chaîne de retour.

Faire DEMO :

Vous devrez créer deux fichiers PHP et les placer dans un dossier à partir duquel votre serveur Web peut servir des fichiers PHP. Dans mon cas, je les ai mis dans / var / www / pour plus de simplicité.

1. helloservice.php et 2. demo.php

helloservice.php est très simple et fait simplement écho à toutes les données qu'il obtient:

<?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;
?>

Page 2.demo.php , vous pouvez voir le résultat:

<?php 
   print_r($_POST);
   //content type: text/html; charset=UTF-8
   //http code: 200
   //Array ( [message] => Hello World [name] => Anand )
?>
Anand Pandey
la source
Bonjour, pourriez-vous me parler de la page 1. using-curl.php
Kaveh
@Kaveh: désolé, j'ai oublié la deuxième page. Réponse mise à jour. Veuillez maintenant vérifier.
Anand Pandey
12

L'extension cURL de PHP est conçue pour vous permettre d'utiliser une variété de ressources Web à partir de votre script PHP.

Naved Ahmed
la source
10

cURL en PHP est un pont pour utiliser la ligne de commande cURL du langage php

Jaime Hablutzel
la source
7

boucle

  • cURL est un moyen de frapper une URL de votre code pour en obtenir une réponse HTML.
  • Il est utilisé pour la ligne de commande cURL du langage PHP.
  • cURL est une bibliothèque qui vous permet de faire des requêtes HTTP en PHP.

PHP prend en charge libcurl, une bibliothèque créée par Daniel Stenberg, qui vous permet de vous connecter et de communiquer avec de nombreux types de serveurs différents avec de nombreux types de protocoles différents. libcurl prend actuellement en charge les protocoles http, https, ftp, gopher, telnet, dict, file et ldap. libcurl prend également en charge les certificats HTTPS, HTTP POST, HTTP PUT, le téléchargement FTP (cela peut également être fait avec l'extension ftp de PHP), le téléchargement basé sur le formulaire HTTP, les procurations, les cookies et l'authentification utilisateur + mot de passe.

Une fois que vous avez compilé PHP avec le support cURL, vous pouvez commencer à utiliser les fonctions cURL. L'idée de base derrière les fonctions cURL est que vous initialisez une session cURL à l'aide de curl_init (), puis vous pouvez définir toutes vos options pour le transfert via curl_setopt (), puis vous pouvez exécuter la session avec curl_exec () puis vous terminer votre session en utilisant curl_close ().

Exemple de code

// 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);
}

Pour plus d'informations, veuillez vérifier -

Joomler
la source
1

Curl n'est rien d'autre qu'une extension de PHP qui hérite des comportements de la commande et de la bibliothèque curl normales écrites principalement pour l'outil de ligne de commande Linux / Unix

Qu'est-ce que Curl? cURL signifie URL client. Le cURL est utilisé pour envoyer des données à n'importe quelle URL. Pour plus de détails sur ce qu'est exactement la boucle, vous pouvez visiter le site Web de CURL

cURL en PHP Maintenant, le même concept est introduit en PHP, pour envoyer des données à n'importe quelle URL accessible via les différents protocoles, par exemple HTTP ou FTP. Pour plus de détails, vous pouvez vous référer au Tutoriel PHP Curl

Ankur Kumar Singh
la source
1

Fonction PHP Curl (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;
}
MałyMiszcz
la source
0

Classe PHP Curl (GET, POST, FILES UPLOAD, SESSIONS, SEND POST JSON, FORCE SELFSIGNED 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;
            } 
        }
    }
?>

Exemple:

<?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);
?>

Fichier 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());
?>
Pigiste
la source