2016-04-03 12 views
0

次のコードを使用して、別のサイトからアイテムの価格をキャッシュしようとしています。x分のキャッシュファイルphp

$cache_file = $_SERVER['DOCUMENT_ROOT'] . '/prices.json'; 
if (file_exists($cache_file) && (filemtime($cache_file) > (time() - 60 * 9))) { 
$file = file_get_contents($cache_file); 
} else { 
$url = 'http://csgo.backpack.tf/api/IGetPrices/v4/?key=XXXXXXXXXXXXXX'; 
$file = curl_load($url); 
$fp = fopen('/prices.json', 'w'); 
fwrite($fp, $file, LOCK_EX); 
fclose($fp); 
} 

apiキーは正しいですが、まだ書き込まれません。 APIによって返される結果はjson文字列です。私はそれをデコードしてアイテムを値上げするのに使うことができるようにファイルに書きたい。誰もがここで私を助けることができる、大いに感謝される。

答えて

0

ファイルシステムのベースディレクトリ(/)に書き込もうとしていますが、Webアクセス可能なPHPスクリプトからの書き込みアクセス権はありません。あなたはfopen()のための適切なパスを構築する必要があります。

fopen($_SERVER['DOCUMENT_ROOT'] . '/prices.json', 'w'); 

注:あなたは、ファイルの存在をチェックするときに、一度上記のパスを使用したが、その後ちょうど/prices.jsonを使用しました。

アンそれを行うにしても良く、少ない繰り返し、道はすでに設定した変数を使用することで、$cache_file

fopen($cache_file, 'w'); 
関連する問題