Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение web-страницы с сайта через PHP, http://ляляля.ком 
:(
    Опции темы
Глупый Кодер
Дата 5.8.2005, 08:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мне необходимо написать скрипт поиска по сайту - скрипт я написал.

Но так сложились обстоятельства, что на сайте используется движок, генерящий страницы из базы. Таким образом, у этих документов адреса оказываются вида "http://lalala.com/sabaka/tiger/".

Дабы не отягощять себя долгими раздумьями над изощренной структурой базы движка, я подумал что будет проще при индексации просто "открыть" эти страницы с сервака (список доступных страниц со ссылками сделать проще) и натолкнулся на непреодолимую стену собственной глупости ибо посредством fopen(...) оно не открывается, а при помощи include(...) открывается, только совсем не так как надо.

Отсюда вопрос:
Как php-скриптово вытащить html-код страницы "http://www.rambler.ru" в переменную $data типа string?

Буду оч. благодарен если подскажете.
  Вверх
o.s.a.
Дата 5.8.2005, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 2
Всего: 15



Код

$str = fopen("http://osa/1.htm","r") or die("can't open");
print_r("<pre>".htmlspecialchars(fread($str,100000))."</pre>");


Это сообщение отредактировал(а) o.s.a. - 5.8.2005, 09:21


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Mal Hack
Дата 5.8.2005, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



o.s.a.
1. fopen работает с удаленными файлами только при определенном конфигураировании.
2. надо использовать как минимум fsockopen
3. print_r несколько не для тех целей что ты написал smile
4. Никогда нельзя писать в fread точное число размера читаемый байт.
5. Для поиска, надо не htmlspecialchars делать, а скорее strip+tags.


Вообще алгоритм такой должен быть:
Код
$fn = "localhost";
$fp = fsockopen($fn, 80, $errno, $errstr, 30);
if (!$fp) {
   echo "$errstr ($errno)<br />\n";

} else {
   $out = "GET /_test/cache.php HTTP/1.1\r\n";
   $out .= "Host: localhost:80\r\n";
   $out .= "Connection: Keep-Alive\r\n\r\n";
$str = "";
   fwrite($fp, $out);
   while (!feof($fp)) {
       $str .= fgets($fp, 128);
       flush();
   }
   fclose($fp);

print $str;
}

PM ICQ   Вверх
Глупый Кодер
Дата 5.8.2005, 16:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо вам обоим! smile
  Вверх
Mal Hack
Дата 5.8.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Не за что smile
А еще было бы не плохо зарегистрироваться на форуме smile
PM ICQ   Вверх
o.s.a.
Дата 5.8.2005, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 2
Всего: 15



Н-да, умудрился в 2-х строчках сделать 5 ошибок smile


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
o.s.a.
Дата 18.8.2005, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 16.2.2005
Где: Ташкент

Репутация: 2
Всего: 15



Mal Hack, Я учел твои замечения.
НО твой скрипт у меня не работает
Код

$fn = "osa"; // мой хост
$fp = fsockopen($fn, 80, $errno, $errstr, 30);
if (!$fp) {
   echo "$errstr ($errno)<br />\n";
} else {
   $out = "GET /1.htm HTTP/1.1\r\n"; // 1.htm страница, которую нужно открыть
   $out .= "Host: osa:80\r\n";
   $out .= "Connection: Keep-Alive\r\n\r\n";
$str = "";
   fwrite($fp, $out);
   while (!feof($fp)) {
       $str .= fgets($fp, 128);
       flush();
   }
   fclose($fp);
print $str;
}

написал свой
Код

$fp = fsockopen ("osa", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs ($fp, "GET /1.htm HTTP/1.0\r\nHost: osa\r\n\r\n");
    while (!feof($fp)) {
        $str[] =  htmlspecialchars(fgets ($fp,128));
    }
    fclose ($fp);
}
$str = implode("\n",$str);
echo "<pre>".$str."</pre>";


З.Ы. htmlspecialchars я использую для того, чтобы теги отображались на экране,
а
Код

echo "<pre>".$str."</pre>";
чтобы красиво вывести все на экран.

Если же задача стоит
Цитата
Как php-скриптово вытащить html-код страницы "http://www.rambler.ru" в переменную $data типа string?

то просто
Код

$str .= fgets ($fp,128);



--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Mal Hack
Дата 18.8.2005, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(o @ 18.8.2005, 08:19)
то просто

только не забудь перед этим $str = ""; сделать.

Цитата(o @ 18.8.2005, 08:19)
НО твой скрипт у меня не работает

Сервак не понял заголовков:

Цитата(o @ 18.8.2005, 08:19)
  $out .= "Host: osa:80\r\n";
  $out .= "Connection: Keep-Alive\r\n\r\n";

Бывает...
PM ICQ   Вверх
Гость_Саня
Дата 6.11.2005, 09:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Будьте добры новичку полностью код поиска дать. Буду благодарен если подробно опишите што и как.
  Вверх
PARROT
Дата 6.11.2005, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Гость_Саня, у нас на форуме не выдают скриптов, а помогают их писать.
Зарегистрируйтесь на форуме, поговорим. smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
4uTeP
Дата 7.11.2005, 18:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мне нужно создать ХТМЛ страницу, из-за которой идёт редирект на другую страницу,Но сайт сверху меняеться на тот который я захочу..Помогите плиз
если есть такие добрые люди вот е-маил : [email protected]
  Вверх
PARROT
Дата 7.11.2005, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



4uTeP, вот редирект тебе.
Код

<script>
function redir()
{
location.href='http://www.avtodiesel.spb.ru';
}
setTimeout("redir()",20000);
</script>

Код

header('location: vasya.php');

В следующий раз не надо плодить одинаковые посты.
Сайт который захочешь напишешь сам.


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.