0

我正在尝试通过使用 jQuery 和jFeed合理地解析 rss 来摸索我的方式。

由于相同的来源政策,我将 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。老实说,我不知道该怎么做。

如果有人可以提供一些指点、提示、提示,或者在紧要关头,快速拍拍脸颊并“振作起来!” 将不胜感激...

提前感谢=)

4

3 回答 3

1

The Zend Framework has a class for consuming all kinds of feeds.

it's called Zend_Feed

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

于 2010-03-12T18:18:10.530 回答
1

在您的测试页面上,您有一些看起来像错误的脚本行......

<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);
       }
   });
...
于 2010-03-12T17:06:32.743 回答
0

在您的 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);
于 2011-03-17T15:11:52.483 回答