Примеры curl

Примеры curl

В этом небольшом уроке я решил показать как делать базовые вещи с помощью библиотеки curl. Комментировать буду каждую значимую строку.

Если вы не знакомы с curl, то сперва изучите соответствующую учебную литературу и руководства. Подобного в интернете более чем достаточно, в том числе и на русском языке.

Как скачать страницу, зная ссылку?

// Создаем подключение
if( $curl = curl_init() ){

// Задаем ссылку
curl_setopt($curl,CURLOPT_URL,'http://seoximik.ru');
// Скачанные данные не выводить поток
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 ее отключили).

// Создаем подключение
	        if( $curl = curl_init() ){

		// Задаем ссылку
		curl_setopt($curl,CURLOPT_URL,'http://seoximik.ru');
		// Скачанные данные не выводить поток
		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 добавляет заголовки в вывод.

// Создаем подключение
	if( $curl = curl_init() ){

		// Задаем ссылку
		curl_setopt($curl,CURLOPT_URL,'http://seoximik.ru');
		// Скачанные данные не выводить поток
		curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

		// Нужно вывести http заголовки в массив
		curl_setopt($curl,CURLOPT_HEADER,true);

		// Скачиваем
		$out = curl_exec($curl);

		// Показываем скачанные данные
		echo $out;

		// Закрываем соединение
		curl_close($curl);
	}

На этом пока все. В дальнейшем возможно приведу и иные удачные примеры.