Апр 17

Уроки PHP: «CURL, базовые примеры I»

Рубрики: Php Метки: ,  Количество просмотров: 14 578

Предыдущий мой урок был достаточно не прост, в связи с этим я решил показать как делать базовые вещи с помощью библиотеки 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. Много тарифных планов.
Единственный автосалон армада одесса с доступными ценами.

Другие статьи автора

Комментарии

  1. Цитировать AngelOfFate

    супер, я уже не однократно говорил, спасибо, вечерком поковыряю это дело =)

  2. Цитировать Memfis

    А как подключить curl_init()?…а то выдаёт ошибку fatal error call to undefined function…
    php_curl.dll есть…в php.ini числится…но ошибку выдаёт..

  3. Цитировать Samborsky

    в php.ini числится

    А покажи строчку где числится?

  4. Цитировать Андрей

    А как, используя, cURL заполнять формы и нажимать на кнопки, работать в сессии, согхранять и использовать coocies? Я хочу написать скрипт для работы с одним сервисом, там просто очень много однообразной работы. Может, посоветуешь какое-нибудь руководство(учебник)?

  5. Цитировать Андрей

    Спасибо, все уже нашел. Отличный блог!

  6. Цитировать abie

    Очень полезная информация, извините за копипаст. как новичок просто кладезь знаний.
    Андрей а не могли бы вы мне подсказать, что нашли?
    Разбираюсь пока, но вот возникают вопросы.
    Страницу могу сграббить, а вот как передать запрос на ту страницу и в качестве ответа, спарсить новую страницу. Не работает((((
    Буду благодарен, за совет и направления, в котором нужно копать.

  7. Цитировать abie

    Попытался передать на одном сайте в форму данные, стоит метод GET, как быть в этом случае?

Добавить комментарий