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



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



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

604   9  

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 был включен в вашем файле 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/');

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

CURL в PHP:

Резюме:

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

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

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

Примеры:

Они были сделаны на Ubuntu 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:

    firefox mycat.gif
    
    Славные кошки эволюционируют Toxoplasma gondii, чтобы заставить женщин держать кошек вокруг, а мужчин также держать женщин вокруг.
  2. Пример CURL get request to hit 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. Верно будет сказать 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-форм, прокси, файлы cookie и аутентификация пользователя+пароль.

  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-это способ, которым вы можете нажать URL из вашего кода, чтобы получить от него HTML-ответ.
  • он используется для скручивания командной строки из языка PHP.
  • cURL-это библиотека, которая позволяет выполнять HTTP-запросы на PHP.
PHP поддерживает libcurl, библиотеку, созданную Дэниелом Стенбергом, которая позволяет подключаться и взаимодействовать со многими различными типами серверов с помощью различных типов протоколов. libcurl в настоящее время поддерживает http, https, ftp, gopher, протоколы telnet, dict, file и ldap. libcurl также поддерживает сертификаты HTTPS, HTTP POST, HTTP PUT, FTP uploading (это также можно сделать с расширением ftp PHP), http form based upload, прокси, cookies и аутентификацию пользователя+пароль.

После того, как вы скомпилировали 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

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

CURL в PHP Теперь такая же концепция введена в PHP, чтобы отправлять данные на любой доступный URL через другой протокол, например, HTTP или ПРОГРАММА ПЕРЕДАЧИ ФАЙЛОВ. Для получения более подробной информации, вы можете обратиться к PHP Curl Tutorial

Comments

    Ничего не найдено.