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在编码和解码的性能上不佳,建议在数据量小的时候使用序列化的方法。

时间: 2024-08-24 04:00:34

PHP关于数组缓存JSON、serialize、var_export的说明的相关文章

数组和json的相互转换

json_encode() <?php /*****一维数组*********/ //有键 $arr = array( 'a'=>1, 'b'=>2, 'c'=>3, ); $json = json_encode($arr); echo($json); //{"a":1,"b":2,"c":3} //无键 $arr = array(1,2,3); $json = json_encode($arr); echo($json)

PHP把数组转换为JSON字符串

<?php/**PHP把数组转换为JSON字符串**/$arr = [10,'Tom',true, '2015-10-15'];//echo $arr;echo json_encode($arr);//编码为JSON字符串 $arr = ['eid'=>10,'ename'=>'Tom','isMarried'=>true, 'birthday'=>'2015-10-15'];//echo $arr;echo json_encode($arr);//编码为JSON字符串 //

C++中的数组array和vector,lambda表达式,C字符串加操作,C++中新类型数组(数组缓存),多元数组,new缓冲

 使用C++风格的数组,不需要管理内存. array要注意不要溢出,因为它是栈上开辟内存. array适用于任何类型 #include<iostream> #include<array> #include<vector>   //C++的标准库 #include<string>   //C++字符串 #include <stdlib.h> using  std::array; //静态数组,栈上 using std::vector; //动态

HP数组转JSON函数json_encode和JSON转数组json_decode函数的使用方法

这两个函数比较简单,我这里直接写例子,但是有一点一定要注意,json数据只支持utf-8格式,GBK格式的数据转换为json会报错! json_encode()用法: <?php$data =array(‘name’=>’jianqingwang’,‘sex’=>’man’,‘title’=>’PHPER’,‘location’=>’XiaMen’); $new_data =json_encode($data); var_dump($data);echo “<br>

JAVA对象、数组转JSON

1.需要库: commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-lang-2.1.jar commons-logging-1.1.3.jar ezmorph-1.0.2.jar json-lib-2.4-jdk15.jar 2.转换方法: //对象转json sqlModel model = new sqlModel(); model.setAge(18); model.setHeight(188.0); model.

PHP中json_encode()使用须知,JSON数组和JSON对象

body { font: 12px/1.5 Tahoma, Arial, Helvetica, sans-serif } ? 偷偷的告诉你,这是一个很不谨慎就会踩得坑 ?  如下代码 (看了一下很简单,没毛病啊,老铁) $arr = array( '0'=>'a','1'=>'b','2'=>'c','3'=>'d' ); echo json_encode($arr); 但是结果是 ["a","b","c","d

将php数组转js数组,js如何接收PHP数组,json的用法

首先下载下面这个文件(这是一段是别人写出来专门解析json的代码),然后引入这个文件! http://pan.baidu.com/s/1dD8qVr7 现在当我们需要用ajax与后台进行交互时,怎样将php的数组传送到js文件并且并js所识别? 先看php文件,当我们获取到$arr这个数组后 foreach ($arr as $value) { $json .= json_encode($value) . ','; } echo '[' . substr($json,0,strlen($json

IOS下WEBVIEW 的javascript数组与json定义 及交互

最近在折腾IOS新闻浏览客户端,当中需要用到webview传递JSON数据到IOS上,然后在IOS上解析.刚入门IOS不久,看了不少的书,但都是囫囵吞枣.在开发过程中,遇到不少问题.开发环境mac mini (IOS端开发)thinkpad x200s(PHP开发)功能实现:在WEBVIEW创建DOM监听,判断用户按下WEBVIEW上链接,通过DOM获取相关链接信息,遍历数组,最终用$.toJSON(jsArray);//将JS数组转换成JSON格式下面记录一下1.JS数组定义最终在WEBVIE

字典、数组、JSON之间的转化小demo

/** * 数组转JSON. */ - (void)testJsonAndArray { NSArray *arr = [NSArray arrayWithObjects:@"a",@"b",@"c",@"d",@"e",@"f", nil]; NSLog(@"arrar = %@",arr); NSError *error = nil; NSData *jsonDa