2016-04-03 24 views
0

Aşağıdaki kodu kullanarak başka bir siteden ürün fiyatlarını önbelleğe almaya çalışıyorum.x dakika php için önyükleme dosyası 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 anahtarı doğrudur, yine de yazmayacaktır. API tarafından döndürülen sonuç bir json dizgisidir. Dosyayı yazmak istiyorum, böylece öğeleri fiyatlandırmak için onu çözebilir ve kullanabilirim. Bana yardım edebilecek biri var mı, çok takdir edilirdi.

cevap

0

Web tabanlı bir PHP komut dosyasından yazma erişimine sahip olmadığınız (ve yapmamalısınız) dosya sisteminin temel dizinine (/) yazmaya çalışıyorsunuz. Sen fopen() için uygun bir yol inşa etmek gerekir:

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

Not: Eğer dosyanın varlığını kontrol ederken, bir kere yukarıdaki yolu kullanılır, ama sonra sadece /prices.json sonradan kullandı.

Çok daha iyi, daha az tekrarlayan, zaten ayarlanmış değişkeni, $cache_file kullanmaktır yapmanın yolu:

fopen($cache_file, 'w');