Консультация № 96087
23.07.2007, 14:36
0.00 руб.
0 2 2
Как загрузить страницу с нета в тхт формате

Приложение:
Помогите плз решить такую задачу Нужно ежедневно скачивать с нета множество страниц и сохранять в тхт форматекак реализовать это с помощью пхп.я попробовал просто копировать с помощью copy ( string source, string dest )но проблема в том что на сайте авторизированый доступ к этим ресурсам и поэтому оно копирует только страницу авторизации хотя я спокойно скачиваю данные через браузер и без авторизации просто по прямой ссылке:есть ли другие кроме "copy" методы решить эту проблему

Обсуждение

Неизвестный
23.07.2007, 17:02
общий
это ответ
Здравствуйте, Volodimir !
В РНР есть такой модуль как Curl. Он позволяет в точности делать действия, которые выполняет браузер, т.е. в данном случае вначале отсылать логин с паролем на страницу логина, получить от туда значение куки (или сессию) и передать это в следующем запросе на нужную нам страницу.

Пример для логина в приложении, но уже какие точно данные надо посылать и в какие переменные - зависит от сайта и разбирать его придется вначале вручную. Либо же писать более сложный скрипт, что будет сам это делать. В переменную $result приходит вся страница, т.е. функция copy уже включена :)
Для работы с Curl-ом необходимо "включить" эту библиотеку в php.ini.

Приложение:
$curl = curl_init();$url = "http://localhost/forum2/login.php";$post= "username=qwer&password=qwer&redirect=&login=Вход";$result = GetHTML($url,$post);echo($result."


");function GetHTML ($url,$post=false) { global $curl; curl_setopt($curl,CURLOPT_URL,$url); if ($post) { curl_setopt($curl,CURLOPT_POST,TRUE); curl_setopt($curl,CURLOPT_POSTFIELDS,$post); } else { curl_setopt($curl,CURLOPT_POST,FALSE); } curl_setopt($curl,CURLOPT_HEADER,1); curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE); $result = curl_exec($curl); return $result;}
Неизвестный
23.07.2007, 22:53
общий
это ответ
Здравствуйте, Volodimir !
Попробуйте использовать функцию file_get_contents

строка file_get_contents ( строка имя_файла [, целое использовать_include_path [, ресурс контекст]])

Как параметр передаете адрес и она сохраняет вам результат в строку
Форма ответа