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

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

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

 

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

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

тема: По поводу обработки RSS и XML
 
 автор: Dred   (20.07.2006 в 00:39)   письмо автору
 
 

В данном примере http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=12751приводится парсер по обработке RSS канала новостей и выводе информации в HTML...
Если Rss содержит необязательный вложенный элемент <item> <enclosure> (к примеру, <enclosure url="http://bikman.ru/music.mp3" length="12216320" type="audio/mpeg" />), то как организовать вывод.. На сколько понимаю, запись вида:
print ("<i>" . html_entity_decode($rss_channel["ITEMS"][$i]["enclosure"]) . "</i>");
будет неправильной???

   
 
 автор: Dred   (20.07.2006 в 13:36)   письмо автору
 
   для: Dred   (20.07.2006 в 00:39)
 

Кто нибудь подскажет, как обработать RSS канал, содержащий элемент "enclosure"??? Как вытянуть url из него??

   
 
 автор: Boss   (20.07.2006 в 13:47)   письмо автору
 
   для: Dred   (20.07.2006 в 13:36)
 

Regex???

   
 
 автор: Dred   (20.07.2006 в 14:03)   письмо автору
 
   для: Boss   (20.07.2006 в 13:47)
 

А поподробней???
Хотелось бы использовать готовый скрипт, который уже предлагался в форуме (ссылка выше)... Только нужно, чтобы он еще и обрабатывал элементы как <enclosure>...

   
 
 автор: cheops   (20.07.2006 в 16:45)   письмо автору
 
   для: Dred   (20.07.2006 в 13:36)
 

Имеется ввиду разобрать на составляющие элементы? Если да, то приведите пожалуйста пример такого RSS-канала.

   
 
 автор: Dred   (20.07.2006 в 17:50)   письмо автору
 
   для: cheops   (20.07.2006 в 16:45)
 

Да, имеется ввиду разобрать по элементам... Канал стандартный, как приводился в примере, версия 2.0.. Разобрать все удалось кроме одного элемента.. Чтоб не загружать форум, привожу только тег <item>:

- <item>
<title>Москва: День 20 июл, Чт</title>
<link>http://www.gismeteo.ru/towns/27612.htm?1000000</link>
<description>облачно, временами ливни, температура +18..+20 С, давление 744..746 мм рт.ст., ветер Северо-Западный, 5 м/с</description>
<category>Погода</category>
<enclosure url="http://img.gismeteo.ru/images/suncl.gif" />
<source>http://informer.gismeteo.ru/rss/27612.xml</source>
</item>
- <item>
<title>Москва: Вечер 20 июл, Чт</title>
<link>http://www.gismeteo.ru/towns/27612.htm?1003137</link>
<description>облачно, без осадков, температура +13..+15 С, давление 746..748 мм рт.ст., ветер Северо-Западный, 3 м/с</description>
<category>Погода</category>
<enclosure url="http://img.gismeteo.ru/images/mooncl.gif" />
<source>http://informer.gismeteo.ru/rss/27612.xml</source>
</item>
- <item>

Проблема вытянуть ссылку из <enclosure> и опубликовать в html...

   
 
 автор: cheops   (21.07.2006 в 10:37)   письмо автору
 
   для: Dred   (20.07.2006 в 17:50)
 

Можно поступить следующим образом
<?php 
  $contents 
file_get_contents("get.txt");
  
// Разбиваем IP-адрес пользователя на 4 фрагмента
  
$pattern "|<item>[\s]*<title>(.+?)<[^<]+<link>(.+?)<[^<]+<description>(.+?)<[^<]+<enclosure[\s]+url=\"([^\"]+)\"[^<]+<source>(.+?)<[^<]+|is";
  
preg_match_all($pattern$contents$out);
  unset(
$out[0]);
  echo 
"<pre>";
  
print_r($out);
  echo 
"</pre>";
?>

   
 
 автор: Dred   (21.07.2006 в 14:26)   письмо автору
 
   для: cheops   (21.07.2006 в 10:37)
 

Мы наверное друг друга немного не поняли...
На форуме приводился следующий парсер: http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=12751

Он в приведенном мною канале обрабатывает все элементы, кроме элемента "enclosure" , имеющего следующий вид: <enclosure url="http://img.gismeteo.ru/images/mooncl.gif" />

Я пытаюсь приведенный парсер доработать, чтобы он мог получать данные из элемента "enclosure"... Сам элемент функция startElement в приведенном парсере находит, а вот данные не обнаруживает (функция characterData данные не получает - переменная $data пустая)..
Можно ли как-то изменить данный парсер (http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=12751), чтобы он обрабатывал и данный канал с элементом "enclosure" ....???

   
 
 автор: Dred   (23.07.2006 в 19:41)   письмо автору
 
   для: Dred   (21.07.2006 в 14:26)
 

Никаких идей нет ни у кого???

   
Rambler's Top100
вверх

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