PHP关于数组缓存JSON、serialize、var_export的说明
1、JSON
JSON缓存变量主要是使用json_encode和json_decode函数,其中json_encode可以将变量变成文本格式存储到文件。
// Store cache
file_put_contents($cacheFilePath, json_encode($DataArray));
// Retrieve cache
$DataArray = json_decode(file_get_contents($cacheFilePath));
缺点:
只对UFT-8的数据有效,对stdClass类的示例有效;
2、serialize
序列化主要使用serialize和unserialize函数,都是以文本方式存储。
// Store cache
file_put_contents($cacheFilePath, serialize($DataArray));
// Retrieve cache
$DataArray = unserialize(file_get_contents($cacheFilePath));
缺点:
编码后的文本对人来说是不可读的,无法被其他语言的系统引用;
3、var_export
用var_export函数将变量内容打印到一个PHP文件(变量)里,使用include的方式来重新获取变量内容。因此生成的缓存文件时一个php文件。
// Store cache
file_put_contents($cacheFilePath, "<?php\nreturn " . var_export($DataArray, true) . ";");
// Retrieve cache
$DataArray = include($cacheFilePath);
缺点:
不能缓存不带__set_state 方法的对象,var_export出来的变量里不能带有影响php语法解析的内容,否则触发语法错误。
总结:var_export在编码和解码的性能上不佳,建议在数据量小的时候使用序列化的方法。
PHP关于数组缓存JSON、serialize、var_export的说明的更多相关文章
- iOS 字典或者数组和JSON串的转换
在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...
- 使用FastJSON,将对象或数组和JSON串互转
Fastjson,是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库.其开源的下载网址为:https://github.com/AlibabaTech/fastjson. 示例代码如下: ...
- javascript里面的数组,json对象,动态添加,修改,删除示例
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- @JSON(serialize=false),过滤不需要的变量
@JSON(serialize=false),过滤不需要的变量 在用struts2返回json类型的数据时,json会自动转换需要转换成json形式的变量,如果哪个变量不需要的话,则可以在该变量的 ...
- JSon_零基础_002_将List类型数组转换为JSon格式的对象字符串,返回给界面
将List类型数组转换为JSon格式的对象字符串,返回给界面 所需要导入的包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * ...
- JSon_零基础_001_将布尔类型数组转换为JSon格式字符串,返回给界面
将布尔类型数组转换为JSon格式字符串,返回给界面 需要导入包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * 下一步com ...
- JQ将数组转换为Json
var ArrComList; try { //接口传进来的数据格式为 A,B,C,D,这里根据逗号分隔返回数组. ArrComList = WeighControl.GetComList().spl ...
- Json Serialize 忽略特定属性
Json Serialize 忽略特定属性 Json Serialize SerializeFilter 忽略特定属性 key words:Json Serialize jackson fastjso ...
- 数据(数组,json)的处理
有些时候我们在做联动事件以及获取动态的数据是,给到我们的都是数组,json格式的数据. 为了方便快速的处理这些数据,jq给我们提供了很多简便的方法. each()方法 在jQuery里有一个each方 ...
随机推荐
- jQuery操作radio
JQuery获取选中的radio $radio = $('input:radio[name="sex"][class="xxxx"]:checked') 获取n ...
- 动作Action
/** * DelayTime延迟 * @param d Duration 延迟时间 */ auto delayTime = DelayTime::create(); sprite->runAc ...
- The APR based Apache Tomcat Native library tomcat启动错误
The APR based Apache Tomcat Native library which allows optimal performance in production environmen ...
- Java 年月日 日期加减
public static String DATE_YEAR="YEAR";//年 public static String DATE_MONTH="MONTH" ...
- Thrift学习记录
Thrift学习记录 Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在C++,Java,Python,PHP,Ruby,Erlang, ...
- EasyUI DataGrid 添加 Footer
做后台管理界面时,EasyUI 的 DataGrid 经常会被用到,有时候一些总的统计数据不合适放在数据表格里,需要单独显示,这时候就可以放在Footer中显示而不必另外布局. 该怎么给 DataGr ...
- magento中对获取的数据在前台进行分页显示
1.数据加载类class Bf170_Bf170Logistics_Block_Inquiry_Index extends Mage_Core_Block_Template { publ ...
- 基于AFN的多张图片上传
不废话,直接上代码 NSString *urlString = [NSString stringWithFormat:@"http://192.168.1.166:8080/Discipli ...
- Java Script 学习笔记
JS编程习惯类: 1. 命名 著名的变量命名规则 只是因为变量名的语法正确,并不意味着就该使用它们.变量还应遵守以下某条著名的命名规则: Camel 标记法 首字母是小写的,接下来的字母都以大写字符开 ...
- C++虚成员函数表vtable
介绍一下多态是如何实现的,关于如何实现多态,对于程序设计人员来说即使不知道也是完全没有关系的,但是对于加深对多态的理解具有重要意义,故而在此节中稍微阐述一下多态的实现机制. 在C++中通过虚成员函数表 ...