В этом небольшом уроке я решил показать как делать базовые вещи с помощью библиотеки 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); }
На этом пока все. В дальнейшем возможно приведу и иные удачные примеры.