Что такое cURL в PHP?

в PHP я вижу слово cURL во многих проектах PHP. Что это? Как это работает?

Ссылка: (что такое cURL в PHP?)

9 ответов


cURL - это библиотека, которая позволяет выполнять HTTP-запросы на PHP. Все, что нужно знать об этом (и большинстве других расширений) можно найти в руководство по PHP.

для использования функций cURL PHP вам необходимо установить " libcurl пакет. PHP требует, чтобы вы использовали libcurl 7.0.2-бета или выше. в PHP 4.2.3, вам понадобится libcurl версии 7.9.0 или выше. Из PHP 4.3.0 вам понадобится версия libcurl, которая 7.9.8 или высший. PHP 5.0.0 требует libcurl версии 7.10.5 или выше.

вы также можете делать HTTP-запросы без cURL, хотя это требует allow_url_fopen для включения в вашем .

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

cURL-это способ попасть в URL-адрес из вашего кода, чтобы получить от него ответ html. cURL означает URL-адрес клиента, который позволяет подключаться к другим URL-адресам и использовать их ответы в коде.


CURL в PHP:

резюме:

на curl_exec команда в PHP-это мост для использования curl из консоли. curl_exec позволяет легко и быстро получать / отправлять запросы, получать ответы от других серверов, таких как JSON и загружать файлы.

Предупреждение Опасности:

curl это зло и опасно, если используется неправильно, потому что это все о получении данных из интернета. Кто-то может попасть между вашим curl и другим сервером и ввести rm -rf / в ваш ответ, а затем почему я упал на консоль и ls -l больше не работает? Потому что ты недооценил опасную силу локона. Не доверяйте ничего, что возвращается из curl, чтобы быть в безопасности, даже если вы говорите со своими собственными серверами. Вы можете отбросить вредоносное ПО, чтобы освободить дураков от их богатства.

примеры:

это было сделано на Ubuntu 12.10

  1. основные curl из командной строки:

    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:

    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 и javascript (из 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 и javascript на экран.

    можно сделать GET и POST запросы с curl, все, что вы делаете, это указать параметры, как определено здесь: http://curl.haxx.se/docs/httpscripting.html#POST

напоминание об опасности:

будьте осторожны, сбрасывая curl выход вокруг, если какой-либо из него интерпретируется и выполняется, ваша коробка принадлежит, и ваша информация о кредитной карте будет продана третьим лицам, и вы получите таинственную плату в размере 900 долларов от компании по настилу из одного человека в Алабаме, которая является прикрытием для заграничного кольца мошенничества с кредитными картами.


cURL-это способ попасть в URL-адрес из вашего кода, чтобы получить от него ответ HTML. Он используется для скручивания командной строки с языка 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;
?> 

Шаг 1: инициализируйте сеанс curl с помощью curl_init().

Шаг 2: установите параметр для CURLOPT_URL. Это значение является URL-адресом, на который мы отправляем запрос. Добавить поисковый запрос curl С помощью параметра q=. Установить параметр для CURLOPT_RETURNTRANSFER. True скажет curl вернуть строку вместо того, чтобы распечатать ее. Установить параметр для CURLOPT_HEADER, false скажет 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


расширение cURL для PHP предназначено для использования различных веб-ресурсов из вашего PHP-скрипта.


во-первых, давайте поймем концепции curl, libcurl и PHP/cURL.

  1. curl: инструмент командной строки для получения или отправки файлов с использованием синтаксиса URL.

  2. libcurl: библиотека, созданная Даниэлем Стенбергом, которая позволяет подключаться и общаться со многими различными типами серверов с различными типами протоколов. в настоящее время libcurl поддерживает http, https, ftp, gopher, telnet, dict, file и протоколы ldap. libcurl также поддерживает сертификаты HTTPS, HTTP POST, HTTP PUT, FTP-загрузку (это также можно сделать с расширением ftp PHP), http-загрузку на основе формы, прокси, куки и аутентификацию пользователя+пароль.

  3. PHP / cURL: модуль для PHP, который позволяет PHP-программам использовать libcurl.

Как использовать:

Шаг 1: инициализация использования сеанса curl curl_init().

Шаг 2: установить параметр для CURLOPT_URL. Это значение является URL-адресом, на который мы отправляем запрос.Добавьте поисковый термин "curl", используя параметр"q=".Установите параметр CURLOPT_RETURNTRANSFER, true сообщит curl, чтобы вернуть строку вместо ее печати. Установите опцию для CURLOPT_HEADER, false скажет curl игнорировать заголовок в возвращаемом значении.

Шаг 3: выполните сеанс curl, используя curl_exec().

Шаг 4: закройте сеанс curl, который мы создали.

Шаг 5: выведите возвращаемую строку.

сделать демо :

вам нужно будет создать два файла PHP и поместить их в папку, из которой ваш веб-сервер может обслуживать файлы PHP. В моем случае я поместил их в /var/ www / для простоты.

1. служба HelloService.в PHP и 2. демонстрация.в 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.демонстрация.в PHP страница, вы можете видеть результат:

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

cURL в PHP-это мост для использования командной строки cURL с языка php


cURL

  • cURL-это способ попасть в URL-адрес из вашего кода, чтобы получить от него ответ HTML.
  • Он используется для скручивания командной строки с языка PHP.
  • cURL-это библиотека, которая позволяет делать HTTP-запросы на PHP.

PHP поддерживает libcurl, библиотеку, созданную Даниэлем Стенбергом, которая позволяет подключаться и общаться со многими различными типами серверов с различными типами протоколов. libcurl в настоящее время поддерживает протоколы HTTP, протокол HTTPS, и FTP, суслик, телнет, дикт, файл, и LDAP протоколы. libcurl также поддерживает сертификаты HTTPS, HTTP POST, HTTP PUT, FTP-загрузку (это также можно сделать с расширением ftp PHP), http-загрузку на основе формы, прокси, куки и аутентификацию пользователя+пароль.

после того, как вы скомпилировали PHP с поддержкой cURL, вы можете начать использовать функции cURL. Основная идея функций cURL заключается в том, что вы инициализируете сеанс cURL с помощью curl_init (), затем вы можете установить все ваши варианты передачи через 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);
}

для получения дополнительной информации, пожалуйста, проверьте -


Curl - это не что иное, как расширение PHP, которое наследует поведение обычной команды curl и библиотеки, написанной в основном для Linux/Unix command line tool

что такое Curl? cURL стенд для URL клиента. CURL используется для отправки данных на любой URL. Для более подробной информации о том, что такое curl, вы можете посетить веб-сайт CURL

cURL в PHP Теперь та же концепция вводится в PHP, чтобы отправлять данные на любой доступный URL через разные протокол, например, HTTP или FTP. Для более подробной информации, вы можете обратиться к PHP Curl учебник