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

Форум Регулярные Выражения

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

 

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

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

тема: Разбор новостей в RSS-формате с lenta.ru
 
 автор: afdm   (19.07.2007 в 21:23)   письмо автору
 
 

Здравствуйте!!!
Есть ссылка http://img.lenta.ru/r/EX/import.xml - это новости в xml формате....
как описать рег. выражение, помогите, я ещё плохо в этом разбираюсь.......

например для выбора погоды вот такое выражение:

  $pattern = "|<FORECAST day=\"([\d]+)\" month=\"([\d]+)\" year=\"([\d]+)\" ".
  "hour=\"([\d]+)\" tod=\"([\d]+)\" predict=\"([\d]+)\" weekday=\"([\d]+)\".".
  "*<PHENOMENA cloudiness=\"([^\"]+)\" precipitation=\"([^\"]+)\" rpower=\"([^\"]+)\" spower=\"([^\"]+)\".".
  "*<PRESSURE max=\"([\d]+)\" min=\"([\d]+)\".*<TEMPERATURE max=\"([^\"]+)\" ".
  "min=\"([^\"]+)\".*<WIND min=\"([^\"]+)\" max=\"([^\"]+)\" direction=\"([^\"]+)\".".
  "*<RELWET max=\"(\d+)\" min=\"(\d+)\"|isU";

а здесь как???
если вот есть ещё одна ссылка: http://news.yandex.ru/Russia/travels.rss - тут новости туризма
помогите, пожалуйста...... с любой ссылкой
ЗЫ заранее всем спасибо!!!

   
 
 автор: cheops   (20.07.2007 в 10:37)   письмо автору
 
   для: afdm   (19.07.2007 в 21:23)
 

Можно воспользоваться следующим скриптом
<?php
  
// Ссылка на XML-файл
  
$url "http://img.lenta.ru/r/EX/import.rss";
  
// Загружаем файл
  
$content file_get_contents($url);
  
// Регулярное выражение
  
$pattern "|<item>[\s]*<title>(.*?)</title>[\s]*".
             
"<link>(.*?)</link>[\s]*".
             
"<description>(.*?)</description>[\s]*".
             
"<pubDate>(.*?)</pubDate>[\s]*".
             
"<category>(.*?)</category>|is";
  
preg_match_all($pattern$content$out);
  
// Выводим последние 10 позиций
  
for($i 0$i 10$i++)
  {
    echo 
"<a href={$out[2][$i]}>{$out[1][$i]}</a><br>".
         
"{$out[3][$i]}<br><br>";
  }
?>

   
 
 автор: afdm   (20.07.2007 в 11:11)   письмо автору
 
   для: cheops   (20.07.2007 в 10:37)
 

работает!!! ура!!! спасибо!!! :))))))))))))))))))))))

   
 
 автор: afdm   (20.07.2007 в 15:56)   письмо автору
 
   для: afdm   (19.07.2007 в 21:23)
 

а как пронумеровать список новостей???

   
 
 автор: cheops   (20.07.2007 в 16:02)   письмо автору
 
   для: afdm   (20.07.2007 в 15:56)
 

Добавляйте номера в строке, которая выводится в цикле for
<?php
  
for($i 0$i 10$i++) 
  { 
    echo 
"$i <a href={$out[2][$i]}>{$out[1][$i]}</a><br>"
         
"{$out[3][$i]}<br><br>"
  }
?>

   
 
 автор: afdm   (20.07.2007 в 16:54)   письмо автору
 
   для: cheops   (20.07.2007 в 16:02)
 

спасибо!!!! :)))))) но это с 0....
а как начать с единицы(1)? :))))

   
 
 автор: kasmanaft   (20.07.2007 в 16:58)   письмо автору
 
   для: afdm   (20.07.2007 в 16:54)
 

Хехе.. Попробуйте вот так ;-)

echo ($i+1)." <a href={$out[2][$i]}>{$out[1][$i]}</a><br>".  
         "{$out[3][$i]}<br><br>"; 

   
 
 автор: afdm   (20.07.2007 в 17:22)   письмо автору
 
   для: kasmanaft   (20.07.2007 в 16:58)
 

спасибо ВАМ всем!!!! ну а насчет 1 я уже сделал, но всё равно спасибо!!!!!!! :)))))))

   
Rambler's Top100
вверх

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