2014-02-12 2 views
1

Привет может кто-нибудь сказать мне, как обработать этот канал RSS в PHPRss подача с PHP

http://www.ft.com/rss/companies/travel-leisure

, когда я уверен, выполнение ниже линии

$ RSS = новый DOMDocument(); $ rss-> load ('http://www.ft.com/rss/companies/travel-leisure');

он дает ошибку

PHP-обнаружена ошибка

Серьезность: Предупреждение

Сообщение: DOMDocument :: нагрузки(): Открытие и закрывающий тег несоответствие: линию связи 8 и голова в http://www.ft.com/rss/companies/travel-leisure, линия: 11

Благодаря

+0

Это сообщение об ошибке не соответствует этому документу. Это больше похоже на то, что вы пытаетесь разобрать HTML как RSS ... и все же я могу воспроизвести его. – Quentin

+0

Вам нужно установить строку UserAgent для PHP. Запрос требует другого, иначе он дает 403 страницы с ошибками, что и вы нажимаете. –

ответ

2

Если вы запрашиваете http://www.ft.com/rss/companies/travel-leisure без заголовка HTTP-заголовка User-Agent, вы можете получить сообщение об ошибке назад (под статусом 200 OK).

Это ошибка на веб-сайте FT.

Как работа, я предлагаю использовать cURL для извлечения данных, а затем подать строку в DOMDocument.

+0

Может ли OP просто делать 'ini_set ('user_agent', 'некоторый браузер UA');' прямо перед запросом? –

+0

Вау, я хотел прокомментировать это, как сначала в вопросе OP «Похоже, что это ошибка в XML (но это не могло быть на FT)!» Ха-ха, правда, высококачественная глобальная журналистика не делает веб-сайты высокого качества, которые я предполагаю. – loveNoHate

+1

Бинго !!! Рабочие Спасибо, ребята, высоко оценили –

0

Почему бы не используйте специальную библиотеку, например SimplePie, для обработки вашего RSS-канала?

$feed = new SimplePie('http://www.ft.com/rss/companies/travel-leisure'); 
$feed->init(); 
$feed->handle_content_type(); 

foreach ($feed->get_items() as $item) { 
    $permalink = $item->get_permalink(); 
    $title = $item->get_title(); 

    // Do what you want... 
} 

Я не тестировал этот код, это просто показать вам пример использования. Здесь documentation и example для получения дополнительных пояснений.

Смежные вопросы