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方 ...
随机推荐
- centos搭建svn服务器
1.在centos6.5上面搭建svn服务器,安装svn服务器:yum install subversion 2.在任意目录下创建仓库目录,这里放在/data/mypros目录下 3.执行命令:svn ...
- EmbossMaskFilter BlurMaskFilter 学习
MaskFilter类可以为Paint分配边缘效果.对MaskFilter的扩展可以对一个Paint边缘的alpha通道应用转换.Android包含了下面几种MaskFilter: BlurMaskF ...
- USACO 3.3 Shopping Offers
Shopping OffersIOI'95 In a certain shop, each kind of product has an integer price. For example, the ...
- [UWP小白日记-3]记账项目-1
学了一段时间的UWP,来个项目试试手. 本来是想边做边学MVVMLight的结果感觉MVVM对于萌新来说太高难,以后再把这个项目改造成MVVMLight框架的项目. 下面进入正题. 中间那快空白打算放 ...
- Java NIO 内存映射文件
Java NIO 内存映射文件 @author ixenos 文件操作的四大方法 前提:内存的访问速度比磁盘高几个数量级,但是基本的IO操作是直接调用native方法获得驱动和磁盘交互的,IO速度限制 ...
- 初始化git
git config --global user.name "Firstname Lastname" git config --global user.email "yo ...
- Java:注解(Annotation)自定义注解入门
转载地址:http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的 ...
- Gulp安装使用教程
题记:为什么要使用gulp,网上有很多关于gulp的优势,而在我看来,这些都是工具的优势!工具的优势最主要体现在易用性上,听说gulp比grunt更易用,所以这里写个文档记录. 同样要保证nodejs ...
- matlab里plot设置线形和颜色
plot(x,y,'r--')% r为颜色,--为线形
- VMware下安装CentOS6.5
一.工具 1.VMware-workstation-full-12.5.0-4352439.exe 2.CentOS-6.5-x86_64-minimal.iso 二.安装VMware虚拟机 1.选择 ...