{"title": "PHP\u6570\u7ec4\u7f13\u5b58:\u4e09\u79cd\u65b9\u5f0fJSON\u3001\u5e8f\u5217\u5316\u548cvar_export\u7684\u6bd4\u8f83", "update_time": "2013-10-19 14:49:00", "tags": "cache php", "pid": "262", "icon": "php.png"}
使用PHP的站点系统,在面对大数据量的时候不得不引入缓存机制。有一种简单有效的办法是将PHP的对象缓存到文件里。 下面我来对这3种缓存方法进行说明和比较。 ### 第一种方法:JSON JSON缓存变量的方式主要是使用json_encode和json_decode两个php函数。json_encode可以将变量变成文本格式,这样就可以存到文件里。 使用样例如下: ``` // Store cache file_put_contents($cachePath, json_encode($myDataArray)); // Retrieve cache $myDataArray = json_decode(file_get_contents($cachePath)); ``` 优势: * 变量序列化后依然可读 * 可以给其他系统使用,因为JSON格式是标准的 劣势: * 只对UFT-8的数据有效,其他编码可能不能很好工作 * 只对stdClass类的示例有效 ### 第二种方法:序列化 序列化的方式主要使用serialize和unserialize这2个函数,序列化的方式和JSON都是,都是以文本方式存储。 使用示例 ``` // Store cache file_put_contents($cachePath, serialize($myDataArray)); // Retrieve cache $myDataArray = unserialize(file_get_contents($cachePath)); ``` 优势: * 允许非UTF-8的变量 * 支持除了stdClass 示例外的其他实例 劣势: * 编码后的文本对人来说是不可读的 * 无法被其他语言的系统引用 ### 第三种方法:var_export 这种方式是用var_export函数将变量内容打印到一个PHP文件里,使用include的方式来重新获取变量内容。因此生成的缓存文件时一个php文件,内容如下 ``` ``` 使用示例: ``` // Store cache file_put_contents($cachePath, "