Библиотека Curl в PHP. Загрузка удаленных файлов и картинок.

PHP включает LibCUrl — библиотеку, созданную Daniel’ом Stenberg’ом.

Она даёт возможность соединяться с серверами и сайтами различных типов и по разным протоколам, скачивать веб-страницы, картинки, документы.

В LibCUrl включена поддержка протоколов http, https, ftp, gopher, telnet, dict, file и ldap.
libcurl также поддерживает сертификаты HTTPS, HTTP POST, HTTP PUT, загрузку файлов по FTP (это возможно сделать также РНР-расширением ftp), загрузку с помощью форм HTTP, прокси, куки и аутентификацию user+password.

Особенность библиотеки, что она маскируется под любой бразуер.

Эта библиотека была добавлена в PHP 4.0.2.

Код использования этой библиотеки выглядит следующим образом:

        $curl = curl_init($url);
        if ( !$curl ) die ('Err initial Curl library');
           // Скачанные данные не выводить поток
           curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
           // Скачиваем
           $page = curl_exec($curl);	//В переменную $page помещается страница
           curl_close($curl);	// Не забывает закрыть соединение
           //**Сохраняем файл либо обрабатваем.

Параметры подключения устанавливаются функцией curl_setopt, куда передается указатель на объект библиотеки, и устанавливаемый параметр.

bool curl_setopt ($curl, $option, $value)

Большинство параметров предопределены в виде констант CURLOPT_***.

Нам осталось только ознакомиться с основными параметрами для библиотеки Curl:

  • CURLOPT_RETURNTRANSFER — результат выполнения возвращается в переменную, и не выводится в браузер
  • CURLOPT_POST — передача данных методом POST (для отправки форм)
  • CURLOPT_POSTFIELDS – тут передаём поля с данными, которые передаются методом POST
  • CURLOPT_USERAGENT — задает значение HTTP-заголовка User-Agent для маскировки под браузер (к примеру Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.14)

Больше параметров описано здесь — http://sevidi.ru/php/phppage62.php.

Так-же можете ознакомиться другими библиотеками для работы с HTTP протоколом.