最近同じ要求が既にあった場合、キャッシュファイルからAPIデータを取得しようとしています。すべてうまく動作しますが、私はちょうどそこにあるキャッシュファイルからコンテンツを取得することができません。私はエラーを見つけることができません。私はあなたが私を助けることができるといいね。PHP - フリーダでコンテンツを取得することができません
$url = /* API URL */;
function getJson($url) {
$cacheFile = 'cache' . DIRECTORY_SEPARATOR . md5($url) . '.json';
if (file_exists($cacheFile)) {
$fh = fopen($cacheFile, 'r');
$cacheTime = filemtime($cacheFile);
if ($cacheTime > strtotime('-60 minutes')) {
$json = fread($fh);
return $json;
}
fclose($fh);
unlink($cacheFile);
}
$json = file_get_contents($url);
$fh = fopen($cacheFile, 'w');
fwrite($fh, $json);
fclose($fh);
return $json;
}
$datab = getJson($url);
$data = json_decode($datab, true);
print_r($data);
キャッシュをフラッシュしてみてください。すでに何かがあるかもしれません。エラーもチェックしてください。パーミッションの問題でもあります。 var_dumpを実行してください –
['fread'](http://php.net/manual/en/function.fread.php)の長さはオプションではないようです。 – apokryfos
@apokryfosあなたは正しいです、それをfread($ fh、filesize($ cacheFile))に変更しました。デフォルトのタイムゾーンを設定します。今それは動作します。 TY! – Toschki