| imho.ws |
![]() |
|
|
|
# 1 |
|
Member
Регистрация: 25.08.2002
Сообщения: 207
![]() |
Уважаемый All,
Если на странице сайта в IE сделать Выделить все->Копировать, то можно сохранить результат в текстовый файл (картинки не нужны). Как сделать то же самое с помощью php? Вариант с удалением тегов не подходит, страница с функциями, include etc. Нужно либо эмулировать работу php-IE, либо где-то взять готовый результат. Типа направить результат IE в поток, к которому привязан txt. Спасибо. |
|
|
|
|
# 2 |
|
Full Member
Регистрация: 29.05.2002
Сообщения: 544
![]() ![]() ![]() ![]() ![]() |
это почему же не подходит? очень даже подходит именно такой вариант(с удалением тегов).
1. конектишься к серверу по сокету. 2. получаешь целиком всю страницу(HTML-код). 3. далее пропускаешь ее через парсер(удаление тегов и т.д.).
__________________
убрано по просьбе администратора
|
|
|
|
|
# 3 |
|
Member
Регистрация: 25.08.2002
Сообщения: 207
![]() |
Sheryld
А не подскажешь насчет как законнектиться по сокету и получить всю страницу? Мне такое делать не приходилось... В мануале пример - бота какого-то делать. Вроде нужно получить контент? Спасибо. Последний раз редактировалось MeatEater; 07.11.2004 в 23:12. |
|
|
|
|
# 4 | |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
|
|
|
|
|
|
# 5 |
|
Member
Регистрация: 25.08.2002
Сообщения: 207
![]() |
RaZEr
Спасибо за линки. Все равно, сокет не открывается. Код простейший из примера, но дает ошибку. Код такой: $fp = fsockopen("www.blabla.com/page.php", 80, $errno, $errstr, 5); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.blabla.com/page.php\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 4096); } fclose($fp); } Ошибка "fsockopen(): php_network_getaddresses: gethostbyname failed" и "fsockopen(): unable to connect to www.blabla.com/page.php:80" Порт менял на 0 (хост под юниксом). Тогда "Операция успешно завершена. (0)", но строки из файла на вывод не идут. Нужно разрашить такие соединения на www.blabla.com? Не подскажешь, что криво сделано? Спасибо. Последний раз редактировалось MeatEater; 08.11.2004 в 17:33. |
|
|
|
|
# 6 |
|
Member
Регистрация: 25.08.2002
Сообщения: 207
![]() |
Нашел где-то вот такой кусок кода. Он делает все, что нужно.
$content = downloadUrl("http://www.blabla.com/page.php"); echo $content; function downloadUrl($url) { $urlParts = parse_url($url); if ("" == $urlParts["host"]) return ""; if ("" == $urlParts["port"]) $urlParts["port"] = 80; if ("" == $urlParts["path"]) $urlParts["path"] = "/"; $fp = fsockopen($urlParts["host"], 80, $errno, $errstr, 30); if (!$fp) return ""; fputs($fp, "GET ".$urlParts["path"]." HTTP/1.0\r\nHost: ".$urlParts["host"]."\r\n\r\n"); $rv = ""; while (!feof($fp)) $rv = $rv.fgets($fp,128); fclose($fp); return $rv; } Всем еще раз спасибо. |
|
|
|
|
# 7 |
|
Junior Member
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138
![]() |
Ошибки увидел в первом коде (понимаю, что готово... для общего развития
):1: fsockopen("www.blabla.com", 80, $errno, $errstr, 5); 5: $out = "GET /page.php HTTP/1.1\r\n"; 6: $out .= "Host: www.blabla.com\r\n"; |
|
|
|
|
# 8 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Проще и удобнее для подобных вещей юзать библиотеку CURL (ну если есть на хостинге конечно), таже задача - две строки...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|