Intereting Posts
В Laravel любой недостаток использования App :: make (''), а не инсталляции конструктора? Imagick: сочинять с маской Пометка фотографий на Facebook с помощью Graph API / PHP SDK Отправлять электронную почту Outlook 2010 с помощью PHP Предотвратить установку даты PHP () от дефолта до 12/31/1969 Как отменить доступ к Microsoft APP для пользователя в php Формат даты в формате PHP / Дата (1365004652303-0500) / Как показать информацию о заказе на странице успеха проверки в Opencart 2x Как получить путь к файлу в html <input type = "file"> в PHP? PHP загружает файл на веб-сервер из формы. сообщение об ошибке Jpgraph не меняет цвета на моей панели Ошибка «Невозможно убить процесс» с помощью «php composer.phar install» на Azure Есть ли функция в Django / Python, похожая на PHP flush (), которая позволяет мне отправлять часть ответа HTTP клиентам? Что такое функция обратного вызова и как использовать ее с OOP Как установить PHP 7 (следующее поколение PHP) на Ubuntu

simplepie не разбирается в google news rss feed

Этот код отлично работает с любым другим rss-каналом, но не с новостями Google. Я не знаю, что я делаю неправильно, я думаю, что это ошибка. Я продолжаю получать эту ошибку, когда я пытаюсь читать новостные ленты google

This XML document is invalid, likely due to invalid characters. XML error: SYSTEM or PUBLIC, the URI is missing at line 1, column 61

Например, если мы попробуем http://stackoverflow.com/feeds он работает красиво, но не с новостями Google. Может ли кто-нибудь дать мне подсказку?

 <?php //get the simplepie library require_once('simplepie.inc'); //grab the feed $feed = new SimplePie(); $feed->set_feed_url("http://news.google.com/news?hl=en&gl=us&q=austria&ie=UTF-8&output=rss"); $feed->force_feed(true); //$feed->encode_instead_of_strip(true); //enable caching $feed->enable_cache(true); //provide the caching folder $feed->set_cache_location('cache'); //set the amount of seconds you want to cache the feed $feed->set_cache_duration(1800); //init the process $feed->init(); //let simplepie handle the content type (atom, RSS...) $feed->handle_content_type(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>simple</title> </head> <body> <div id="page-wrap"> <h1>News Finder</h1> <?php if ($feed->error): ?> <p><?php echo $feed->error; ?></p> <?php endif; ?> <?php foreach ($feed->get_items() as $item): ?> <div class="chunk"> <h4 style="background:url(<?php $feed = $item->get_feed(); echo $feed->get_favicon(); ?>) no-repeat; text-indent: 25px; margin: 0 0 10px;"><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></h4> <p class="footnote">Source: <a href="<?php $feed = $item->get_feed(); echo $feed->get_permalink(); ?>"><?php $feed = $item->get_feed(); echo $feed->get_title(); ?></a> | <?php echo $item->get_date('j MY | g:ia T'); ?></p> </div> <?php endforeach; ?> </div> 

Related of "simplepie не разбирается в google news rss feed"

Убедитесь, что вы используете SimplePie 1.2.1 , 1.2 была ошибка с синтаксическим разбором URL, который может вызвать этот тип ошибки.

(Я также являюсь разработчиком SimplePie, поэтому не стесняйтесь снимать вопросы прямо на мой адрес электронной почты)

Если вы используете 1.2.1, похоже, что это проявление ошибки # 162, которая в настоящее время не подтверждена. Я рассмотрю этот вопрос, но, похоже, это ошибка в SimplePie, а не в коде.

(Я также опубликую здесь, почему это происходит для любопытных среди вас.)

Я понятия не имею о SimplePie, однако простой способ в вашем случае может быть просто SimpleXML:

 $url = "http://news.google.com/news?hl=en&gl=us&q=austria&bav=on.2,or.r_gc.r_pw.,cf.osb&biw=1920&bih=973&um=1&ie=UTF-8&output=rss"; $feed = simplexml_load_file($url); echo $feed->channel->title, "\n<", $feed->channel->link, ">\n\n"; foreach($feed->channel->item as $item) { echo "* $item->title\n <$item->link>\n"; } 

SimpleXML обычно напрямую доступен с PHP, вам не нужно устанавливать какую-либо библиотеку.

демонстрация

Для фида новостей Google используется:

 $feed->set_raw_data(file_get_contents($rssurl));