推特的RSS解析器很慢 - 为什么?

时间:2010-11-17 21:14:26

标签: php twitter rss

我正在利用this script来获取我的Twitter Feed的第一项。但是,它很慢(现在加载页面需要3到4秒)。为什么这么慢?

以下是我如何使用它。

require_once 'rss_php.php'; //see link above

$rss = new rss_php;

$rss->load('http://twitter.com/statuses/user_timeline/XXXXXX.rss');

$feed = $rss->getItems(false, 1);

echo $feed[0]['title'];
echo $feed[1]['title'];

我确实收到了这个PHP通知:

  

注意:未定义的变量:tempNode   在   C:\ WAMP \ WWW \ rss_php.php   在第137行

我不知道为什么因为这有效,第137行是这一行:

return $tempNode;

感谢大家的帮助。我很欣赏任何关于加快这一点的建议。

4 个答案:

答案 0 :(得分:3)

从远程位置获取内容可能会引入一些相当丑陋的加载问题。

尝试在本地文件中保存RSS源的内容,并查看从本地驱动器加载时问题是否仍然存在。 如果这样可以解决问题,那么您应该每隔一段时间调查一次Feed的内容。

答案 1 :(得分:2)

首先,你的pastbin的第110行正在分配一个从未声明过的变量。因此,对未声明变量的任何请求或分配都将执行此操作。从我看到它应该就像在extractDOM方法的函数调用下面添加$tempNode = Array();一样简单。

接下来,由于这是来自其他人的脚本,我建议您询问他们可以做些什么来提高性能。从pastbin的内容来看,我没有看到任何详细的内容,也没有看到你错误地使用库,但最终他们会更清楚。

答案 2 :(得分:0)

在rss_php.php(v.1免费版)文件中的第138行之后粘贴:

...
if (!isset($tempNode)){
    $tempNode = null;
}
return $tempNode;
...

享受

答案 3 :(得分:-2)

摆脱那个返回$ tempNode;注意很容易,但不是你的问题,它只需要在extractDOM函数中的forloop中定义。

优化您的PHP代码是一项艰巨的任务。我假设api调用是大部分时间,但如果你想尝试加速你的代码,我会看一下如何做的教程:

http://ilia.ws/archives/12-PHP-Optimization-Tricks.html

http://progtuts.info/55/php-optimization-tips/

http://hungred.com/useful-information/php-micro-optimization-tips/

相关问题