imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 07.11.2004, 15:57     # 1
MeatEater
Member
 
Регистрация: 25.08.2002
Сообщения: 207

MeatEater Путь к славе только начался
Question php: как получить текстовый образ страницы?

Уважаемый All,
Если на странице сайта в IE сделать Выделить все->Копировать, то можно сохранить результат в текстовый файл (картинки не нужны).
Как сделать то же самое с помощью php?
Вариант с удалением тегов не подходит, страница с функциями, include etc.
Нужно либо эмулировать работу php-IE, либо где-то взять готовый результат. Типа направить результат IE в поток, к которому привязан txt.
Спасибо.
MeatEater вне форума  
Старый 07.11.2004, 17:01     # 2
Sheryld
Full Member
 
Регистрация: 29.05.2002
Сообщения: 544

Sheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царствеSheryld Луч света в тёмном царстве
это почему же не подходит? очень даже подходит именно такой вариант(с удалением тегов).

1. конектишься к серверу по сокету.
2. получаешь целиком всю страницу(HTML-код).
3. далее пропускаешь ее через парсер(удаление тегов и т.д.).
__________________
убрано по просьбе администратора
Sheryld вне форума  
Старый 07.11.2004, 22:13     # 3
MeatEater
Member
 
Регистрация: 25.08.2002
Сообщения: 207

MeatEater Путь к славе только начался
Sheryld

А не подскажешь насчет как законнектиться по сокету и получить всю страницу? Мне такое делать не приходилось... В мануале пример - бота какого-то делать. Вроде нужно получить контент?
Спасибо.

Последний раз редактировалось MeatEater; 07.11.2004 в 23:12.
MeatEater вне форума  
Старый 08.11.2004, 09:52     # 4
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Цитата:
А не подскажешь насчет как законнектиться по сокету и получить всю страницу?
RTFM: www.php.net/fopen www.php.net/fsockopen
RaZEr вне форума  
Старый 08.11.2004, 16:58     # 5
MeatEater
Member
 
Регистрация: 25.08.2002
Сообщения: 207

MeatEater Путь к славе только начался
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.
MeatEater вне форума  
Старый 08.11.2004, 18:50     # 6
MeatEater
Member
 
Регистрация: 25.08.2002
Сообщения: 207

MeatEater Путь к славе только начался
Нашел где-то вот такой кусок кода. Он делает все, что нужно.

$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;
}

Всем еще раз спасибо.
MeatEater вне форума  
Старый 09.11.2004, 10:30     # 7
V0iD
Junior Member
 
Аватар для V0iD
 
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138

V0iD Путь к славе только начался
Ошибки увидел в первом коде (понимаю, что готово... для общего развития ):
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";
V0iD вне форума  
Старый 09.11.2004, 14:14     # 8
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Проще и удобнее для подобных вещей юзать библиотеку CURL (ну если есть на хостинге конечно), таже задача - две строки...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 12.11.2004, 14:42     # 9
Sych
Junior Member
 
Регистрация: 01.11.2002
Адрес: Kyiv, Ukraine
Сообщения: 95

Sych Мелкий засранец
про всего удаленно открывать файлы fopen или забирать их целиком file_get_contents - но это должно быть разрешено в настройках сервера
Sych вне форума  
Старый 15.11.2004, 17:54     # 10
MeatEater
Member
 
Регистрация: 25.08.2002
Сообщения: 207

MeatEater Путь к славе только начался
V0iD
Ты прав, ошибки есть
Sych
Не разрешено, хотя спасибо за идею.
Hubbitus
Про CURL не читал пока. Почитаю.

Спасибо всем за советы.
MeatEater вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 17:12.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.