Есть RSS-поток с лайвджорнала. Там все стандартное, но есть несколько элементов <category> подряд. Не пойму, как регулярками извлечь их все.
Сейчас это выглядит так:
$reg_exp = '#<item>.*?';
$reg_exp .= '<pubDate>(.*?)<\/pubDate>.*?';
$reg_exp .= '<title>(.*?)<\/title>.*?';
$reg_exp .= '<link>http://community.livejournal.com/любое сообщество/(.*?).html<\/link>.*?';
$reg_exp .= '<description>(.*?)<\/description>.*?';
$reg_exp .= '<category>(.*?)<\/category>.*?';
$reg_exp .= '<lj:poster>(.*?)<\/lj:poster>.*?';
$reg_exp .= '<\/item>#si';
При этом извлекается _только один тэг_. Нужны все.
Примечание:
Короче как вариант, перед применением регулярки пройтись стр_реплейсом:
$xml_data = str_replace("</category>\r\n <category>", ', ', $xml_data); Тогда тэги в одном item-е окажутся в одном элементе, через запятую.
Если кто подскажет более красивое решение - будет здорово.
Примечание:
Я вроде в тэгах написал php :-) А знать бы как там циклы использовать, курю мануал, что-то бестолку.
А правда, что регулярки медленнее работают, чем строковые функции?
Примечание:
Не-не-не-не, циклы в php я знаю :-) Я думал там какой-то цикл в самих регулярках... За ссылки по парсингу rss-потоков отдельное спасибо.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.