Как разобрать rss со страницы php, используя jQuery / jFeed? - PullRequest
0 голосов
/ 12 марта 2010

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

Из-за той же политики происхождения Я перетаскиваю ленту новостей BBC о здоровье на локальную страницу (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 ]

1 голос
/ 12 марта 2010

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

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

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

1 голос
/ 12 марта 2010

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

<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);
       }
   });
...
0 голосов
/ 17 марта 2011

В вашем 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);
...