Всем доброго времени суток =) Возникли проблемы, которые в принципе я чётко могу сформулировать, т.к. два дня уже перерываю просторы инета. В общем цель - это сделать парсинг веб страницы. Т.е. используя file_get_contents() или curl мне необходимо слить код определённой веб странички в файл, из которого я потом буду забирать то что мне необходимо. Всё казалось бы просто. Но вот какие проблемы меня ждали: 1. file_get_contents() - категорически отказывается работать с внешними соединениями 2. curl вообще не инициализируется. Решил копать по curl. Докопался только сегодня, сделав массу настроек в конфиге, перемещению библиотек в разные дирректории и т.п. Ладно, факт в том что модуль подключил, всё заработало... но опять же ЛОКАЛЬНО! Все те же приблуды пробую дома, всё работает! В общем что бы не вводить Вас в смятение, дело на 99% вот в чём: интернет только на машине где поднят веб сервер, далее, этот интернет приходит через прокси, не через прогу usergate, а хз откуда, в общем в серверной стоит отдельный комп-фаервол, к которому подходит оптоволокно с другого предприятия, а туда он приходит ещё через пару таких точек Вот! В общем такой вот прокси )) Через браузеры инет пашет, всё путём. Но вот как заставить Apache работать через этот прокси? Что бы внешние соединения пробивались? Может где то в кофиге прописать нужно адрес прокси и порт? У нас прокси типа 10.*.*.* с портом 3128. Вот вычитал немного схожую проблему, там советуют колдовать с NAT. Но в эти глубины я не прогружался и понятия не имею там ли искать или нет.. может быть кто нибудь натолкнёт на правильное решение и возможно ли оно? практически та же проблема, но не решённая, прикрепляюю к материалу дела http://forum.dklab.ru/s/denwer-4/base-1/20120/
curl умеет использовать прокси PHP: <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true); curl_setopt($ch, CURLOPT_PROXY, '10.*.*.*'); curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
Слушай, спасибо большое!!! Вот что значит не углубился в эту функцию, действительно всё работает, думаю мне этого будет вполне достаточно!!! Ну а если кому то будет интересно, то приведу полностью php код парсинга веб странички, потому что решение проблемы в инете особо не описано, а здесь будет полный так сказать разжёванный и опубликованный материал =) <?php $ch = curl_init("АДРЕС_ВЕБ_СТРАНИЦЫ"); $fp = fopen("ИМЯ.ФОРМАТ", "w"); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true); curl_setopt($ch, CURLOPT_PROXY, 'АДРЕС ПРОКСИ'); curl_setopt($ch, CURLOPT_PROXYPORT, ПОРТ); curl_exec($ch); curl_close($ch); fclose($fp); ?>