Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с регами
 
 автор: helper   (05.04.2005 в 11:52)
 
 

Доброго времени суток !
Столкнулся со след. проблемой ..
Допустим есть сайт : http://softtime.ru (к примеру Ваш сайт) , на нём есть новости , которые Вы регулярно обновляете ...
Так вот ...мне бы понять (желательно примерчик) как прочитать через скрипт вашу главную страничку и выдрать новости !
Помогите )))

   
 
 автор: cheops   (05.04.2005 в 13:48)   письмо автору
 
   для: 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)
 

Ну что ?
Помощь ещё в силе ?

   
 
 автор: cheops   (06.04.2005 в 10:46)   письмо автору
 
   для: helper   (06.04.2005 в 00:39)
 

Да, просто я вчера вечером открыл первый сайт и... закрыл, решил что с таким навороченным HTML-кодом нужно с утра, на свежую голову работать :)))

   
 
 автор: cheops   (06.04.2005 в 12:28)   письмо автору
 
   для: 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&#149;&nbsp;<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

Залил на нормальный хостинг так там вместо нужного выпонлнения , что-то непонятное :)
Вот в файле (я прикрепил) то что получается

   
 
 автор: cheops   (06.04.2005 в 23:22)   письмо автору
 
   для: 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
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования