我正在尝试确保我的Twitter Feed以某种方式提供,缓存或新的。我正在使用下面的代码来确保缓存文件是否已经过时,另外如果同时我仍然有足够的尝试留在我的Twitter速率限制中。问题是该声明似乎不正常,但我无法弄清楚原因。我试过两个运营商'&&''和'和',都没有工作。有什么想法吗?
$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 }
答案 0 :(得分:0)
注意:我们不知道你问题的$ file是什么 - 它来自哪里?您使用的操作系统和文件系统是什么?
但是,我怀疑您希望使用filemtime来检查缓存文件的更新。
与&&&或AND,但你的两个条件的布尔值是什么 - 这是布尔逻辑的意思。如果其中任何一个值为false,则整个测试将为false。
做一些调试:
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
这样,您可以看到哪些条件是错误的。
答案 1 :(得分: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值。