Qu'est-ce que cURL in PHP?

en PHP, je vois le mot cURL dans de nombreux projets PHP. Quel est-il? Comment ça fonctionne?

lien de référence: ( Qu'est-ce que cURL in PHP? )

192
demandé sur Community 2010-06-17 18:06:12

9 réponses

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 .

afin d'utiliser les fonctions cURL de PHP vous devez installer le " libcurl paquet. PHP exige que vous utilisiez libcurl 7.0.2-bêta ou supérieur. En PHP 4.2.3, vous aurez besoin de libcurl version 7.9.0 ou plus. À partir de PHP 4.3.0, vous besoin d'une version libcurl 7.9.8 ou plus. PHP 5.0.0 nécessite une version de libcurl 7.10.5 ou plus.

vous pouvez aussi faire des requêtes HTTP sans cURL, bien qu'il faille activer allow_url_fopen dans votre fichier 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/');
212
répondu Johannes Gorset 2017-09-13 06:25:08

cURL est un moyen que vous pouvez frapper une URL à partir de votre code pour obtenir une réponse html à partir de celui-ci. cURL signifie client URL qui vous permet de vous connecter avec D'autres URLs et d'utiliser leurs réponses dans votre code.

140
répondu sushil bharwani 2014-06-22 15:47:58

CURL in PHP:

résumé:

la commande curl_exec en PHP est un pont pour utiliser curl à partir de la console. curl_exec rend facile de faire rapidement et facilement des requêtes GET/POST, recevoir des réponses d'autres serveurs comme JSON et télécharger des fichiers.

Avertissement, Danger:

curl est mauvais et dangereux s'il est mal utilisé parce qu'il s'agit d'obtenir des données à partir de là-bas sur internet. Quelqu'un peut passer entre votre boucle et l'autre serveur et injecter un rm -rf / dans votre réponse, et alors pourquoi suis-je tombé sur une console et ls -l ne fonctionne même plus? Parce que vous avez sous-estimé le pouvoir dangereux de curl. 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 malware pour soulager les idiots de leur richesse.

exemples:

Ces ont été faites sur Ubuntu 12.10

  1. boucle de base 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
    

    alors vous pouvez ouvrir votre gif dans firefox:

    firefox mycat.gif
    

    Glorieux chats évolution de Toxoplasma gondii pour amener les femmes à avoir des chats autour et les hommes de même à garder les femmes autour.

  2. cURL exemple get request to hit google.com, echo à la ligne de commande:

    Ceci est fait à travers le terminal de 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) à la console.

  3. cURL exemple mettre le texte de la 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 le binaire qui est un gif animé d'un chat, les possibilités sont infinies.

  4. Faire une boucle à partir de l'intérieur 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;
      }
    ?>
    

    puis lancez-le via la ligne de commande:

    php < myphp.php
    

    vous avez couru myphp.php et exécuté ces commandes par l'intermédiaire de l'interpréteur php et jeté une tonne de HTML messy et javascript à l'écran.

    vous pouvez faire GET et POST requêtes avec curl, tout ce que vous faites est de spécifier les paramètres définis ici: http://curl.haxx.se/docs/httpscripting.html#POST

Rappel de danger:

soyez prudent si l'un d'entre eux est interprété et exécuté, votre boîte est possédée et les informations de votre carte de crédit seront vendues à des tiers et vous obtiendrez une mystérieuse charge de 900 $d'une société de revêtement de sol en Alabama qui est une façade pour un réseau criminel de fraude de carte de crédit à l'étranger.

56
répondu Eric Leschinski 2014-01-08 23:11:30

cURL est un moyen que vous pouvez frapper une URL à partir de votre code pour obtenir une réponse HTML à partir de celui-ci. Il est utilisé pour la boucle de ligne de commande à partir 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: Initialiser une session curl en utilisant curl_init() .

Étape 2: Définir l'option pour CURLOPT_URL . Cette valeur est L'URL à laquelle nous envoyons la requête. Ajouter un terme de recherche curl en utilisant le paramètre q= . Définir l'option pour CURLOPT_RETURNTRANSFER . Véritable dira curl pour revenir la chaîne, au lieu de l'imprimer. Définir l'option pour CURLOPT_HEADER , false va dire à curl d'ignorer l'en-tête dans la valeur de retour.

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

Etape 4: fermez la session de bouclage 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, voir le manuel de l'utilisateur ou le tutoriel suivant:

http://php.net/manual/en/ref.curl.php

http://www.startutorial.com/articles/view/php-curl

18
répondu Neha Sinha 2017-03-12 06:37:32

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

12
répondu Naved Ahmed 2013-06-21 05:27:18

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 en utilisant la syntaxe D'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 avec de nombreux types de protocoles. libcurl actuellement prend en charge les protocoles http, https, ftp, gopher, telnet, dict, file et ldap. libcurl prend également en charge les certificats HTTPS, les messages HTTP POST, les messages HTTP PUT, le téléchargement FTP (cela peut également être fait avec L'extension ftp de PHP), le téléchargement par formulaire HTTP, les mandataires, 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:

etape 1 : Initialiser une session curl utilisation curl_init().

step2 : Set option for CURLOPT_URL. Cette valeur est L'URL à laquelle nous envoyons la requête.Ajouter un terme de recherche "curl" en utilisant le paramètre "q=".Définir L'option CURLOPT_RETURNTRANSFER, true va dire à curl de retourner la chaîne au lieu de l'imprimer. Définir l'option pour CURLOPT_HEADER, false va dire à curl d'ignorer l'en-tête dans la valeur de retour.

step3 : exécute la session curl en utilisant curl_exec().

step4 : fermez la session bouclée que nous avons créée.

step5 : sortie de la chaîne de retour.

Faire la DÉMONSTRATION :

vous aurez besoin de créer deux fichiers PHP et les placer dans un dossier que votre serveur web peut servez des fichiers PHP à partir de. Dans mon cas, je les ai mis dans /var/www/ pour la simplicité.

1. helloservice.php et 2. démo.php

helloservice.php est très simple et fait essentiellement é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;
?>

2.démo.php page, 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 )
?>
11
répondu Anand Pandey 2018-06-29 11:12:45

cURL en PHP est un pont à utiliser en ligne de commande cURL de php

10
répondu Jaime Hablutzel 2011-07-02 03:17:30

cURL

  • cURL est un moyen que vous pouvez frapper une URL à partir de votre code pour obtenir une réponse HTML à partir de celui-ci.
  • il est utilisé pour la boucle de ligne de commande 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 avec de nombreux différents types de protocoles. libcurl supporte actuellement les protocoles http, https, ftp, gopher, telnet, dict, file et ldap. libcurl prend également en charge les certificats HTTPS, les messages HTTP POST, les messages HTTP PUT, le téléchargement FTP (cela peut également être fait avec L'extension ftp de PHP), le téléchargement par formulaire HTTP, les mandataires, 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 initialize une session cURL en utilisant curl_init(), puis vous pouvez définir toutes vos options pour le transfert via curl_setopt (), ensuite vous pouvez exécuter la session avec curl_exec () et ensuite vous terminez votre session en utilisant curl_close ().

Code Échantillon

// 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'information, veuillez cocher -

6
répondu Joomler 2017-03-30 06:40:06

Curl n'est rien d'autre qu'une extension de PHP qui hérite des comportements de la commande normale curl & bibliothèque écrite principalement pour Linux/Unix outil en ligne de commande

Qu'est-ce que Curl? Curl représente L'URL du Client. La boucle est utilisée pour envoyer des données à N'importe quelle URL. Pour plus de détails sur ce que curl est exactement, vous pouvez visiter CURL site web

cURL en PHP Maintenant le même concept est introduit dans PHP, pour envoyer des données à toute URL accessible via le protocole différent, par exemple HTTP ou FTP. Pour plus de détails, vous pouvez vous référer à tutoriel PHP Curl

1
répondu Ankur Kumar Singh 2017-01-21 20:18:49