Инструменты пользователя

Инструменты сайта


curl

Примеры использования cURL

cURL это инструмент, позволяющий взаимодействовать с различными серверами и поддерживающий множество протоколов: HTTP, FTP, TELNET и др. Изначально cURL — это служебная программа для командной строки. PHP поддерживает работу с библиотекой cURL.

Тестирование HTTP при помощи cURL или rest-client

cURL позволяет легко выполнять любые HTTP методы для нужного ресурса. Можно передавать любые параметры запросов и заголовков, а так же проверять ответные заголовки и данные. Инструмент коммандной строки «curl», стандартен для большинства *nix систем. Для пользователей Windows подойдёт MinGW/MSYS.

Пример использования и базовые опции:

# curl -X PUT www.example.com/bar/1 -d "some=var" -d "other=var2" -H "Accept: text/json" -I
-X [METHOD] определяет HTTP метод.
-d «name=value» устанавливает имя и значения переменных в POST/PUT.
-H [HEADER] устанавливает заголовок.
-I отображает заголовки ответа.

Авторизация POST на PHP с использованием curl

Пример авторизация POST на PHP с использованием curl:

Источник: htmlweb.ru

<?
function login($url,$login,$pass){
   $ch = curl_init();
   if(strtolower((substr($url,0,5))=='https')) { // если соединяемся с https
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
   }
   curl_setopt($ch, CURLOPT_URL, $url);
   // откуда пришли на эту страницу
   curl_setopt($ch, CURLOPT_REFERER, $url);
   // cURL будет выводить подробные сообщения о всех производимых действиях
   curl_setopt($ch, CURLOPT_VERBOSE, 1);
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
   curl_setopt($ch, CURLOPT_POSTFIELDS,"login=".$login."&pass=".$pass);
   curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
   curl_setopt($ch, CURLOPT_HEADER, 1);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   //сохранять полученные COOKIE в файл
   curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
   $result=curl_exec($ch);
 
   // Убеждаемся что произошло перенаправление после авторизации
   if(strpos($result,"Location: home.php")===false) die('Login incorrect');
 
   curl_close($ch);
 
   return $result;
}
 
// чтение страницы после авторизации
function Read($url){
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   // откуда пришли на эту страницу
   curl_setopt($ch, CURLOPT_REFERER, $url);
   //запрещаем делать запрос с помощью POST и соответственно разрешаем с помощью GET
   curl_setopt($ch, CURLOPT_POST, 0);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
   //отсылаем серверу COOKIE полученные от него при авторизации
   curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
   curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
 
   $result = curl_exec($ch);
 
   curl_close($ch);
 
   return $result;
}
?>

PHP: удаленный размер файла без загрузки файла

Источник: qaru.sit

Функция вывод размер удаленного файла, используется библиотека PHP curl и HTTP метод запроса HEAD (параметр CURLOPT_NOBODY).

function getRemoteFilesize($url){
     $ch = curl_init($url);
 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
     curl_setopt($ch, CURLOPT_HEADER, TRUE);
     curl_setopt($ch, CURLOPT_NOBODY, TRUE);
 
     $data = curl_exec($ch);
     $size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
 
     curl_close($ch);
     return $size;
}
 
$url = 'https://example.com/file.csv';
echo getRemoteFilesize($url);
echo "\n";
загрузка...
curl.txt · Последние изменения: 2018/08/11 12:04 — darkfire