|
автор: helper (05.04.2005 в 11:52) |
|
| Доброго времени суток !
Столкнулся со след. проблемой ..
Допустим есть сайт : http://softtime.ru (к примеру Ваш сайт) , на нём есть новости , которые Вы регулярно обновляете ...
Так вот ...мне бы понять (желательно примерчик) как прочитать через скрипт вашу главную страничку и выдрать новости !
Помогите ))) | |
|
|
|
|
|
|
|
для: helper
(05.04.2005 в 11:52)
| | Посмотрите темы
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3110
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3137
В них приводятся многочисленные примеры работы с регулярными выражениями. Вам нужны именно наши новости или требуется получить новости с какого-то другого сайта? | |
|
|
|
|
автор: helper (05.04.2005 в 14:00) |
|
|
для: cheops
(05.04.2005 в 13:48)
| | новости нужны с сайтов
dn.kiev.ua
Podrobnosti.ua
Sport.com.ua
Mignews.com.ua
Magnolia-TV.com
Вот с этих сайтов требуется раз в день пробегаться скриптом и брать с них новости !
Естественно ссылки на авторов новостей будут ставится .. cheops помогите пожалуйста хоть с некоторыми указанными выше сайтами , а там с другими я думаю по примеру уже разберусь .. Заранне спасибо ...
Желательно что-бы новости сохранялись в базу ... В текстовую хотябы ...в муську я уже постараюсь сам переделать ! Кстати вчера был в магазине и наконецто обрадовался что Ваша новая книга появилась в Одессе .. Я около часа стоял у прилавка и читал ... Продавец уже огрызатся начал ... Подсобираю денежку и куплю обязательно! | |
|
|
|
|
автор: helper (06.04.2005 в 00:39) |
|
|
для: helper
(05.04.2005 в 14:00)
| | Ну что ?
Помощь ещё в силе ? | |
|
|
|
|
|
|
|
для: helper
(06.04.2005 в 00:39)
| | Да, просто я вчера вечером открыл первый сайт и... закрыл, решил что с таким навороченным HTML-кодом нужно с утра, на свежую голову работать :))) | |
|
|
|
|
|
|
|
для: cheops
(06.04.2005 в 10:46)
| | Вот скрипт загрузки с перых двух сайтов
<?php
// Устанавливаем не ограниченное время выполнения скрипта
set_time_limit(0);
// http://dn.kiev.ua
$page = file_get_contents("http://dn.kiev.ua");
preg_match_all("#<a href=\"([^\"]+)\" class=(simple|vip)>([^<]*)</a>#i",$page,$out,PREG_PATTERN_ORDER);
print_r($out[1]); // Ссылки
print_r($out[2]); // Заголовоки новостей в cp1251
// http://podrobnosti.ua/
$page = file_get_contents("http://podrobnosti.ua/");
preg_match_all("|\n• <a href=([^>]*)>([^<]*)</a>|i",$page,$out,PREG_PATTERN_ORDER);
print_r($out[1]); // Ссылки
print_r($out[2]); // Заголовоки новостей в KOI8-R
?>
|
Есть небольшая фича, связанная с тем, что информация на разных сайтах представлена в разных кодировках, поэтому часть их придётся перекодировать. Кроме того, такого рода сайты могут подвергаться ре-дизайну - поэтому за регулярными выражениями необходимо следить. С помещением данных в таблицу MySQL лучше завести отдельную тему в соответствующем разделе http://www.softtime.ru/forum/index.php?id_forum=3 | |
|
|
|
|
автор: helper (06.04.2005 в 17:41) |
|
|
для: cheops
(06.04.2005 в 12:28)
| | На локалке тестировал , вот что пишет :
Fatal error: Call to undefined function: file_get_contents() in server\www\random.php on line 5
|
Залил на нормальный хостинг так там вместо нужного выпонлнения , что-то непонятное :)
Вот в файле (я прикрепил) то что получается | |
|
|
|
|
|
|
|
для: helper
(06.04.2005 в 17:41)
| | >На локалке тестировал , вот что пишет :
Хм... это означает у вас PHP младше 4.3, где эта функция введена, тогда следует использовать связку fopen+fread, как это описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=2120
>Залил на нормальный хостинг так там вместо нужного
>выпонлнения , что-то непонятное :)
>Вот в файле (я прикрепил) то что получается
Ну как раз понятное :))), только у вас переводы строк исчезли, должен выдавать дамп массива
Array
(
[0] => /disasters/world/moskowfirm_6_4.html
[1] => /business/world/MSpot_6_4.html
[2] => /economics/world/forexeu_6_4.html
[3] => /law/gusev_6_4.html
[4] => /law/petrik_6_4.html
[5] => /business/world/Linux_6_4.html
[6] => /economics/world/vb_6_4.html
[7] => /politic/ukraine/patriot_6_4.html
[8] => /law/kinah_6_4.html
[9] => /economics/world/russiadolg_6_4.html
[10] => /economics/world/operatorrussia_6_4.html
[11] => /economics/ukraine/infl_6_4.html
[12] => /economics/ukraine/odessaoil_6_4.html
[13] => /business/world/yukos_6_4.html
)
Array
(
[0] => В Москве до 80% фирм на подставных лицах
[1] => Цифровое радиовещание по мобильнику
[2] => Pынок форекс на европейской сессии
[3] => Гусеву доверили налоги Сумщины
[4] => Назначен новый член правления "Нефтегаза"
[5] => Linux сдает позиции
[6] => Bceмиpный Бaнк пpeдупреждает
[7] => Патриоты декларируют доходы
[8] => Кинах сменил Азарова
[9] => У России нет проблем!
[10] => Возможности сотовых операторов России
[11] => Инфляция в марте
[12] => В Одессе утечка нефти!
[13] => Суд рассмотрит еще один иск к "ЮКОСу"
)
|
Т.е. обратившись к элементу $out[3][1] можно получить строку
Суд рассмотрит еще один иск к "ЮКОСу"
|
PS Извиняюсь, но первый пример следует читать как
<?php
$page = file_get_contents("http://dn.kiev.ua");
preg_match_all("#<a href=\"([^\"]+)\" class=(simple|vip)>([^<]*)</a>#i",$page,$out,PREG_PATTERN_ORDER);
print_r($out[1]); // Ссылки
print_r($out[3]); // Заголовоки новостей в cp1251
?>
|
| |
|
|
|