php 序列化和反序列化有什么用?
- PHP中什么是序列化有哪些用处?
序列化就是把本来不能直接存储的数据转换成可存储的数据,并且不会丢掉数据格式
serialize();
- 反序列化是什么意思呢?
其实就是字面的意思,把序列化的数据,转换成我们需要的格式
unserialize();
举个栗子
/*
* $array 可以是数组 ,可以是序列化的数据字符
*/
function serxl($array){
if(is_array($array)){
return serialize($array);
}else{
$array= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $array );
$array= str_replace("\r", "", $array);
return unserialize($array);
}
}
/*
在使用过程中发现一些小问题,现在这个函数可以完美使用了。
*/
$websites = array('sogou'=>'sgou' , 'so360'=>360 , 'jd'=>'jd' );
$ass = serxl($websites);
print_r($ass); //得到 a:3:{s:5:"sogou";s:4:"sgou";s:5:"so360";i:360;s:2:"jd";s:2:"jd";}
$xlh = 'a:3:{s:5:"sogou";s:4:"sgou";s:5:"so360";i:360;s:2:"jd";s:2:"jd";}';
$ass = serxl($xlh);
print_r($ass);
/* 封装一下
array(3) {
["sogou"]=>
string(4) "sgou"
["so360"]=>
int(360)
["jd"]=>
string(2) "jd"
}
*/
可以把这个当成缓存来用,是个不错的解决方案。