Что такое 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был включен в вашем файле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
Основной завиток от командная строка:
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:
Славные кошки эволюционируют Toxoplasma gondii, чтобы заставить женщин держать кошек вокруг, а мужчин также держать женщин вокруг.firefox mycat.gifПример 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) в приставка.
Пример CURL поместите текст ответа в переменную:
Это делается через терминал phpsh:
Переменная теперь содержит двоичный файл, который является анимированным gif кота, возможности бесконечны.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;Сделайте завиток из файла 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.
Шаг 1: инициализируйте сеанс 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; ?>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.
Curl : средство командной строки для получения или отправки файлов с использованием синтаксиса URL.
Libcurl : библиотека, созданная Даниэлем Стенбергом, которая позволяет вам подключаться и взаимодействовать со многими различными типами серверов с множеством различных типов протоколов. в настоящее время libcurl поддерживает протоколы http, https, ftp, gopher, telnet, dict, file и ldap. libcurl также поддерживает Сертификаты HTTPS, HTTP POST, HTTP PUT, FTP-загрузка (это также может быть сделано с расширением ftp PHP), загрузка на основе HTTP-форм, прокси, файлы cookie и аутентификация пользователя+пароль.
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 ) ?>
Завиток
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 и аутентификацию пользователя+пароль.
- cURL-это способ, которым вы можете нажать URL из вашего кода, чтобы получить от него HTML-ответ.
- он используется для скручивания командной строки из языка PHP.
- cURL-это библиотека, которая позволяет выполнять HTTP-запросы на PHP.
После того, как вы скомпилировали 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