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

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

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

 

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

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

тема: Обработка новостей в RSS формате
 
 автор: fis   (20.04.2007 в 18:00)   письмо автору
 
 

Есть код:

<item>
            <title></title>
            <link></link>
            <guid></guid>
            <author></author>
            <category></category>
            <pubDate></pubDate>
            <description></description>
</item>


Мне нужно получить 2 параметра: title и description.
Я делаю это с помощью 2-х регулярных выражений:

$p1 = "|<item>[\s]*<title>([^>]+)</title>|is";
$p2 = "|<description>([^>]+)</description>[\s]*</item>|is";


Как объединить эти 2 выражения в одно, чтобы получить необходимые параметры?

   
 
 автор: ddhvvn   (20.04.2007 в 18:29)   письмо автору
 
   для: fis   (20.04.2007 в 18:00)
 


<?php
  preg_match
("|<item>.*<title>(*.)</title>.*<description>(.*)</description>.*</item>|is"$text$result);
?>

Точно не помню, но думаю это сработает :-)

   
 
 автор: fis   (20.04.2007 в 18:36)   письмо автору
 
   для: ddhvvn   (20.04.2007 в 18:29)
 

не, так не работает

   
 
 автор: ddhvvn   (20.04.2007 в 18:56)   письмо автору
 
   для: fis   (20.04.2007 в 18:36)
 

А так:

<?php 
  preg_match
("|<item>.*<title>(*.)</title>.*<description>(.*)</description>.*</item>|isU"$text$result); 
?> 

   
 
 автор: Loki   (21.04.2007 в 12:12)   письмо автору
 
   для: ddhvvn   (20.04.2007 в 18:56)
 

И так могут быть проблемы: порядок тегов в xml не регламентируется.

   
 
 автор: ddhvvn   (21.04.2007 в 13:46)   письмо автору
 
   для: Loki   (21.04.2007 в 12:12)
 

Да. Но я дал код именно для приведенного в 1 посте порядка.

   
 
 автор: fis   (21.04.2007 в 14:55)   письмо автору
 
   для: ddhvvn   (21.04.2007 в 13:46)
 

Спасибо все получилось, но я использовал такое регулярное выражение:

|<item>[\s]*<title>([^>]+)</title>.*<description>([^>]+)</description>[\s]*</item>|isU

   
 
 автор: Trianon   (21.04.2007 в 17:13)   письмо автору
 
   для: fis   (21.04.2007 в 14:55)
 

Куда разумнее было расставить [^<]

   
Rambler's Top100
вверх

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