0

我正在努力确保我的 twitter 提要以某种方式提供,缓存的或新的。我正在使用下面的代码来尝试确保缓存文件是否旧,此外,如果同时我的 twitter 速率限制中还有足够的尝试次数。问题是该声明似乎无法正常工作,但我不知道为什么。我已经尝试使用运算符'&&'和'AND',但都不起作用。任何想法?

$json = file_get_contents("http://api.twitter.com/1/account/rate_limit_status.json", true);
$decode = json_decode($json, true);
$twitter_rate_remaining = $decode['remaining_hits'];

if(((time()-filectime($file)) > 1800) && ($twitter_rate_remaining > 5)) { //do something }
4

2 回答 2

0

好的,我想通了。我的函数中没有这个。我在外面有。嗬!

$json = file_get_contents("http://api.twitter.com/1/account/rate_limit_status.json", true); $decode = json_decode($json, true); $twitter_rate_remaining = $decode['remaining_hits'];

所以我无法获得 $twitter_rate_remaining 值,直到我将它移入其中。

于 2013-01-09T17:15:44.480 回答
0

注意:我们不知道您的问题是什么 $file - 它来自哪里?您使用的是什么操作系统和文件系统?

但是,我怀疑您想使用 filemtime 来检查缓存文件的更新。

它与 && 或 AND 无关,但您的两个条件的布尔值是什么 - 这就是布尔逻辑的含义。如果其中任何一个值是假的,那么整个测试将是假的。

做一些调试:

var_dump(time());
var_dump(filectime($file));
var_dump(time() - filectime($file));

var_dump(time()-filectime($file)) > 1800); // output boolean true or false

var_dump($twitter_rate_remaining);

var_dump($twitter_rate_remaining > 5); // output boolean true or false;

var_dump((time()-filectime($file)) > 1800) && ($twitter_rate_remaining > 5)); // output boolean true or false

这样,您可以看到哪些条件是错误的。

于 2013-01-09T03:12:18.300 回答