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

注: あなたの質問から $file が何であるかはわかりません - それはどこから来たのですか? どのOSとファイルシステムを使用していますか?

ただし、filemtime を使用して、キャッシュされたファイルの更新を確認したいと思われます。

&& や AND とは何の関係もありませんが、2 つの条件のブール値が何であるか - それがブール論理の意味です。いずれかの値が 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

そうすることで、どの条件が false であるかを確認できます。

于 2013-01-09T03:12:18.300 に答える
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 に答える