Рубрики
Uncategorized

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

Автор оригинала: David Wong.

PHP curl-это очень мощная библиотека с открытым исходным кодом. Он поддерживает множество протоколов, включая HTTP, FTP, Telnet и т.д. мы используем его для отправки HTTP-запросов. Преимущество, которое это дает нам, заключается в том, что мы можем устанавливать различные параметры протокола HTTP с помощью гибких опций и поддерживать HTTPS. Curl может автоматически выбирать, следует ли шифровать отправляемый контент, основываясь на том, является ли префикс URL “HTTP” или “HTTPS”.

Основной процесс отправки запросов с помощью curl

Использование PHP-расширения curl для отправки HTTP-запроса обычно включает следующие шаги:

  • 1. Инициализируйте дескриптор подключения;
  • 2. Установите опцию скручивания;
  • 3. Выполняйте и получайте результаты;
  • 4. Отпустите ручку соединения завитков.

Следующий фрагмент программы представляет собой типичный процесс отправки HTTP с использованием curl

//1. Initialization
$ch = curl_init();
//2. Set options, including URL
curl_setopt($ch,CURLOPT_URL,"http://www.codetc.com");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER,0);
//3. Execute and get HTML document content
$output = curl_exec($ch);
if($output === FALSE ){
 echo "CURL Error:".curl_error($ch);
}
//4. Release curl handle
curl_close($ch);

В приведенном выше коде используются четыре функции

curl_init() и curl_close() Инициализировать и закрыть соединение curl относительно просто.

curl_exec() Выполнить запрос curl. Если ошибка не возникает, функция возвращает данные, возвращаемые с соответствующего URL-адреса, который выражается в виде строки. Если возникает ошибка, функция возвращает значение false. Следует отметить, что если вывод ложен, полный знак используется для различения возврата пустой строки и ошибки.

Наиболее важной функцией в библиотеке curl является curl_setopt() Он может настраивать HTTP-запросы, устанавливая параметры, определенные библиотекой функций curl. В приведенном выше фрагменте кода используются три важных параметра:

  • URL-адрес CURLOPT_ указывает URL-адрес запроса;
  • КЕРЛОПТ_ Если для обратного перевода установлено значение 1, curl будет выполнен позже_ Возвращаемая функция exec представляет собой возвращаемую строку URL-адреса, а не направляет возвращаемую строку в стандартный вывод и возвращает значение true;
  • КЕРЛОПТ_ Если значение заголовка равно 0, информация о заголовке HTTP не возвращается.

Есть много вариантов для curl, вы можете перейти на официальный сайт PHP( http://www. php .net/manual/en/function.curl-setopt.php )Просмотрите список всех опций, поддерживаемых curl на.

Получить выходную информацию запроса curl

остаться curl_exec() После выполнения функции можно использовать curl_ Функция getinfo() получает соответствующую информацию, выводимую из запроса curl. Пример кода выглядит следующим образом:

curl_exec($ch);
$info = curl_getinfo($sh);
Echo 'get' $info ['url '].' time consuming. $info ['total]_ 'time] ';

Завиток в приведенном выше коде_ Getinfo возвращает ассоциативный массив, содержащий следующие данные:

  • Getinfo возвращает ассоциативный массив, содержащий следующие данные:
  • тип содержания_: кодировка содержимого.
  • http_ код:Код состояния HTTP.
  • размер заголовка_:размер заголовка.
  • размер_ запроса: размер запроса.
  • ВРЕМЯ ФАЙЛА: время создания файла.
  • ssl_ результат проверки:Результаты проверки SSL.
  • количество перенаправлений_: количество прыжков.
  • total_ Time: общее время.
  • время поиска имен_:Время, затрачиваемое на запрос DNS.
  • время подключения: ожидание времени подключения.
  • время предварительной передачи: время подготовки перед передачей.
  • размер_ загрузки: размер загружаемых данных.
  • размер_ загрузки: размер загружаемых данных.
  • скорость загрузки: скорость загрузки.
  • speed_ Загрузка: скорость загрузки.
  • длина загружаемого содержимого: длина загружаемого содержимого.
  • длина загружаемого содержимого: длина загружаемого содержимого.
  • время начала передачи: запланируйте начало передачи.
  • время перенаправления_: время перенаправления.

curl_getinfo() Функция также имеет необязательный параметр $opt, который можно использовать для установки некоторых констант, соответствующих предыдущему полю операции. Если установлен второй параметр, будет возвращена только указанная информация. Например, параметр $opt равен curlinfo_ ВСЕГО_ ВРЕМЕНИ , затем curl_getinfo( ) Функция возвращает только total_ Time, то есть общее время передачи. Когда вам нужно только обратить внимание на некоторую информацию о передаче, установка параметра $opt очень важна.

Отправить запрос на получение с помощью curl

Как использовать curl для отправки запроса get, ключ для отправки запроса get состоит в том, чтобы собрать правильный URL-адрес. Адрес запроса и данные get разделяются знаком “?”, затем имена и значения переменных get разделяются знаком”&”. PHP предоставляет нам функцию для сборки запросов get и частей данных– http_build_query Эта функция принимает ассоциативный массив и возвращает строку запроса get, описанную связанными данными. Используя эту функцию в сочетании с общим процессом отправки HTTP-запросов curl, мы закрыли функцию отправки запросов get, docurlgetrequest. Конкретный код выглядит следующим образом:

/**
 *@Desc closes the call interface of curl and the request mode of get.
*/
function doCurlGetRequest($url,$data,$timeout = 5){
 if($curl == "" || $timeout <= 0){
 return false;
 }
 $url = $url.'?'.http_bulid_query($data);
 $con = curl_init((string)$url);
 curl_setopt($con, CURLOPT_HEADER, false);
 curl_setopt($con, CURLOPT_RETURNTRANSFER,true);
 curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);
 return curl_exec($con);
}

Эта функция использует http_ build_ Запрос собранный URL-адрес с параметром get передается в функцию curl_ Init, а затем использует curl для отправки HTTP-запроса.

Отправить запрос на отправку с помощью curl

Вы можете использовать параметры, предоставляемые curl CURLOPT_POSTFIELDS Установите этот параметр для отправки строковых данных, чтобы поместить запрос в тело. Аналогично, мы реализовали функцию отправки запроса post – docurlpostrequest. Код выглядит следующим образом:

/**
**@ desc encapsulates curl calling interface and post request mode
**/
function doCurlPostRequest($url,$requestString,$timeout = 5){
 if($url == '' || $requestString == '' || $timeout <=0){
 return false;
 }
 $con = curl_init((string)$url);
 curl_setopt($con, CURLOPT_HEADER, false);
 curl_setopt($con, CURLOPT_POSTFIELDS, $requestString);
 curl_setopt($con, CURLOPT_POST,true);
 curl_setopt($con, CURLOPT_RETURNTRANSFER,true);
 curl_setopt($con, CURLOPT_TIMEOUT,(int)$timeout);
 return curl_exec($con); 
}

В приведенном выше коде, в дополнение к настройкам CURLOPT_POSTFIELDS Кроме того, мы также настроили CURL_POST True указывает, что запрос является запросом post. Данные Get также могут быть переданы в запросе post, просто соберите данные запроса get в URL.

резюме

Выше приведено все содержание этой статьи, я надеюсь, что содержание этой статьи имеет определенную справочную ценность для вашего обучения или работы, спасибо за вашу поддержку в разработке. Если вы хотите узнать об этом больше, пожалуйста, проверьте соответствующие ссылки ниже

Оригинал: “https://developpaper.com/how-to-use-php-curl/”