Уроки PHP: «CURL, базовые примеры I»
Предыдущий мой урок был достаточно не прост, в связи с этим я решил показать как делать базовые вещи с помощью библиотеки curl. Комментировать буду каждую значимую строку, но если будут вопросы – пишите в комментариях.
Как скачать страницу, зная ссылку?
<?php
// Создаем подключение
if( $curl = curl_init() ){
// Задаем ссылку
curl_setopt($curl,CURLOPT_URL,'http://www.samborsky.com');
// Скачанные данные не выводить поток
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
// Скачиваем
$out = curl_exec($curl);
// Показываем скачанные данные
echo $out;
// Закрываем соединение
curl_close($curl);
}
?>
Есть прокси, как скачать страницу по ссылке ч-з него? спамерам на заметку
CURL умеет самостоятельно работать с http-прокси, socks (соксы) 4 и 5 версии. По умолчанию курл работает с http-проксями, но опцией CURLOPT_PROXYTYPE можно задать какой именно прокси будет использован (CURLPROXY_HTTP, CURLPROXY_SOCKS5, насчет константы CURLPROXY_SOCKS4 – не уверен, возможно в PHP ее отключили).
<?php
// Создаем подключение
if( $curl = curl_init() ){
// Задаем ссылку
curl_setopt($curl,CURLOPT_URL,'http://www.samborsky.com');
// Скачанные данные не выводить поток
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
// Задаем тип проски - сокс5
curl_setopt($curl,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5);
// Указываем сам сокс
curl_setopt($curl,CURLOPT_PROXY,'127.0.0.1:1080');
// Скачиваем
$out = curl_exec($curl);
// Показываем скачанные данные
echo $out;
// Закрываем соединение
curl_close($curl);
}
?>
Как посмотреть http-ответ сервера?
Достаточно включить опцию CURLOPT_HEADER. После этого CURL добавляет заголовки в вывод.
<?php
// Создаем подключение
if( $curl = curl_init() ){
// Задаем ссылку
curl_setopt($curl,CURLOPT_URL,'http://www.samborsky.com');
// Скачанные данные не выводить поток
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
// Нужно вывести http заголовки в массив
curl_setopt($curl,CURLOPT_HEADER,true);
// Скачиваем
$out = curl_exec($curl);
// Показываем скачанные данные
echo $out;
// Закрываем соединение
curl_close($curl);
}
?>
Пример рыботы:
HTTP/1.1 200 OK
Date: Fri, 17 Apr 2009 13:50:22 GMT
Server: Apache/2.2.8 (Fedora)
X-Powered-By: PHP/5.2.4
X-Pingback: http://www.samborsky.com/xmlrpc.php
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8<html>… и прочий html код…
Недорогой хостинг php. Много тарифных планов.
Единственный автосалон армада одесса с доступными ценами.


супер, я уже не однократно говорил, спасибо, вечерком поковыряю это дело =)
А как подключить curl_init()?…а то выдаёт ошибку fatal error call to undefined function…
php_curl.dll есть…в php.ini числится…но ошибку выдаёт..
А покажи строчку где числится?
А как, используя, cURL заполнять формы и нажимать на кнопки, работать в сессии, согхранять и использовать coocies? Я хочу написать скрипт для работы с одним сервисом, там просто очень много однообразной работы. Может, посоветуешь какое-нибудь руководство(учебник)?
Спасибо, все уже нашел. Отличный блог!
Очень полезная информация, извините за копипаст. как новичок просто кладезь знаний.
Андрей а не могли бы вы мне подсказать, что нашли?
Разбираюсь пока, но вот возникают вопросы.
Страницу могу сграббить, а вот как передать запрос на ту страницу и в качестве ответа, спарсить новую страницу. Не работает((((
Буду благодарен, за совет и направления, в котором нужно копать.
Попытался передать на одном сайте в форму данные, стоит метод GET, как быть в этом случае?
Abie,
http://www.samborsky.com/php/569/