所谓文件缓存数据就是将一些不是经常变化的数据放在文件中供使用,取代了通过数据库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 是三种之中读写最快的。