所謂檔案快取資料就是將一些不是經常變化的資料放在檔案中供使用,取代了通過資料庫IO來擷取資料。
1.var_export($array,[TRUE])
#.Uchome和Discuz系統裡用的比較多的一個方法,通常是存放一些如積分規則,郵件配置資訊等系統configs的資料,由方法cache_write()將資料庫中讀取的資料存放到檔案中。
eg:
var_export($arr); //直接標準輸出一個string
$a = var_export($arr,TRUE); //將這個string賦值給一個變數
echo $a; //與var_export($arr);輸出的內容一樣
好處:var_export()將一個數組存為形如“ARRAY('a'=>ARRAY(....),'b'=>xxx)”的字串,完全保留了數組的形式,所以儲存時只需要拼接下字串:'$arr_name = '.var_export($arr); 這樣調用這些資料也很簡單,只需要把檔案require進來,就可以使用這個數組$arr_name了。
2.serialize() / unserialize()
eg:
$se = serialize($arr); //return string
$unse = unserialize($se); //return array
3.JSON_ENCODE / JSON_DECODE
#.這裡要弄清楚JSON對象和關聯陣列的關係
eg:
$json_en = JSON_ENCODE($arr); //return string
$json_de1 = JSON_DECODE($json_en); //return json object
echo $json_de1->attr1; //以json對象方式輸出屬性
$json_de2 = JSON_DECODE($json_en,TRUE); //強制return Array
echo $json_de2['attr1']; //以關聯陣列的方式輸出
【實測】 serialize / unserialize 是三種之中讀寫最快的。