Как разобрать rss со страницы php, используя jQuery/jFeed?

Я пытаюсь найти разумный способ разбора rss, используя jQuery и jFeed.

Из-за той же политики происхождения я помещаю ленту новостей о здоровье Би-би-си на локальную страницу ( http://www.davidrhysthomas.co.uk/play/proxy.php).

Первоначально это было точно так же proxy.php скрипт доступен в пакете загрузки jFeed, но из-за отключения моего хоста allow_url_fopen() Я изменил php к следующему:

$url = "http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/health/rss.xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);

echo "$data";
curl_close($ch);

Который, кажется, генерирует такое же / сопоставимое содержимое как оригинал fopen на моей локальной машине.

Теперь, похоже, это работает, я смотрю на настройку скрипта jFeed для работы со страницей и, к моему смущению, не вижу как.

Я понимаю, что, по крайней мере, это должно работать:

jQuery.getFeed({
   url: 'http://www.davidrhysthomas.co.uk/play/proxy.php',
   success: function(feed) {
      alert(feed.title);
   }
});

... но, как я уверен, вы ожидаете, это не так. То, что там нет, доступно для ознакомления здесь: http://www.davidrhysthomas.co.uk/play/exampleTest.html. И я, честно говоря, понятия не имею, что с этим делать.

Если бы кто-нибудь мог предложить несколько указателей, советов, подсказок или, в крайнем случае, быстрый удар по щекам и "возьми себя в руки!" это было бы очень ценно...

Заранее спасибо =)

3 ответа

Решение

На вашей тестовой странице у вас есть несколько строк скрипта, которые выглядят как неправильные...

<script type="text/javascript">

jQuery(function() {

   url: 'http://www.davidrhysthomas.co.uk/play/proxy.php',
   success: function(feed) {
      alert(feed.title);
   }
...

Я думаю, что это должно быть больше похоже на...

<script type="text/javascript">

jQuery(function() {

   jQury.ajax( {
       url: 'http://www.davidrhysthomas.co.uk/play/proxy.php',
       success: function(feed) {
           alert(feed.title);
       }
   });
...

В Zend Framework есть класс для потребления всех видов каналов.

это называется Zend_Feed

http://framework.zend.com/manual/en/zend.feed.html

В своем коде PHP вы пропустили заголовок xml:

$url = "http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/health/rss.xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
header("content-type: text/xml"); 
echo "$data";
curl_close($ch);
Другие вопросы по тегам