2010-05-29 51 views
1

如何在php網頁上執行此操作?每60分鐘解碼並緩存json

我想獲取並解碼一個json字符串,並在我的頁面上顯示結果爲html,但是,我不希望它熱連接回源。

如果我能寫解碼的字符串到一個txt文件說weather.txt的服務器上,並保持HTML格式並做到這一點,這樣的頁面,直到60分鐘自從上次通過將不獲取JSON腳本無論頁面在60分鐘內打開多少次並查看weather.txt,都會被抓取。

我能想出的一個簡單的腳本就是熱鏈接,其他所有我嘗試過的簡單腳本都失敗了。

$ file = file_get_contents('http://sample.com/weather');
$ out =(json_decode($ file));
echo $ out-> mainText;

將不勝感激任何幫助。

回答

1

您可以使用filemtime()每分鐘重新制作weather.txt文件,如果沒有,則發送現有文件。

1

您可以使用UNIX的cronjob這將覆蓋weather.txt的與你的代碼輸出

1

您也可以將數據存儲在一個2列的表每隔一小時的內容,1是數據,一個是DTS。

SO ....

SELECT * FROM table WHERE dts > NOW() - INTERVAL 60 MINUTE 

if($mysqli->num_rows == 0) 
{ 
    $file = file_get_contents('http://sample.com/weather'); 
    REPLACE INTO table SET data="$file",dts=NOW(); 
    $out = json_decode($file); 
} 
else 
{ 
    $out = json_decode($mysqli->data); 
} 
echo $out->mainText; 

與您所選擇