hg888皇冠手机登录

PHP多样种类化/反系列化的法子详解

八月 2nd, 2019  |  www.hg888.com

上述所述是作者给大家介绍的PHP
种类化和反类别化函数实例详解,希望对大家具备协助,如若大家有别的疑问请给小编留言,笔者会及时回复大家的。在此也特别谢谢大家对台本之家网址的帮助!

只是base64编码将加码字符串的长短。为了克制那几个主题材料,可以和gzcompress一同利用。

function my_serialize($obj_array){ 
  return base64_encode(gzcompress(serialize($obj_array))); 
} 
//反序列化 
function my_unserialize($str){ 
  return unserialize(gzuncompress(base64_decode($str))); 
} 

复制代码 代码如下:

输出结果:

使用json_encode和json_decode格式输出要serialize和unserialize格式快得多。

小心当数组值满含如双引号、单引号、冒号或中文等字符时,它们被反系列化后,可能会出现乱码或格式被打乱的主题材料。

$obj = array();
//序列化
$s = base64_encode(serialize($obj));
//反种类化
$original = unserialize(base64_decode($s));
唯独base64编码将加码字符串的长度。为了征服那一个主题素材,可以和gzcompress一齐利用。
//定义二个用来系列化对象的函数
function my_serialize($obj )
{
   returnbase64_encode(gzcompress(serialize($obj)));
}
//反系列化
function my_unserialize($txt)
{
   returnunserialize(gzuncompress(base64_decode($txt)));
}

2.将$arr数组举行连串化赋值给$info字符串,并在浏览器中输出查看结果;

 $a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');

//序列化数组

$s = var_export($a , true);

echo $s;

//输出结果: array ( 'a' => 'Apple', 'b' => 'banana', 'c' => 'Coconut', )

echo '<br /><br />';

//反序列化

eval('$my_var=' . $s . ';');

print_r($my_var);
$user=array('Moe','Larry','Curly'); 
$user=serialize($stooges); 
echo '<pre>'; 
print_r($user); 
echo '<br />'; 
print_r(unserialize($user)); 

在地方的例证中,json_encode输出长度比上个例子中serialize输出长度显著要短。
3. var_export 和 eval var_export
函数把变量作为三个字符串输出;eval把字符串当成PHP代码来推行,反系列化获得开始时代变量的剧情。

3.结尾选用unserialize($info)反连串化将字符串还原成大家供给的数组格局;

你只怕感兴趣的篇章:

  • 长远浅析PHP的session反类别化漏洞难题
  • PHP
    连串化和反连串化函数实例详解
  • 详解PHP中的体系化、反种类化操作
  • 深入解析PHP中SESSION反种类化学工业机械制
  • php中种类化与反体系化详解
  • PHP中SEPRADOIALIZE和JSON的体系化与反类别化操作差别深入分析
  • 详解PHP系列化反类别化的不二等秘书技
  • php
    json与xml体系化/反种类化
  • 分析PHP各类系列化与反类别化的点子
  • 详解PHP系列化和反体系化原理

化解乱码难题得以行使base64_encodebase64_decode 七个函数。
例如:

<?php
$a = array(‘a’=> ‘Apple’ ,’b’ => ‘banana’, ‘c’ => ‘Coconut’);
//体系化数组
$s = serialize($a);
echo $s;
//输出结果:a:3:{s:1:”a”;s:5:”Apple”;s:1:”b”;s:6:”banana”;s:1:”c”;s:7:”Coconut”;}
echo ‘<br /><br />’;
//反体系化
$o = unserialize($s);
print_r($o);
//输出结果 Array ( [a] => Apple [b] => banana [c] =>
Coconut )
www.hg888.com,?>

string(140) "a:5:{s:4:"name";s:6:"张三";s:3:"age";s:2:"22";s:3:"sex";s:3:"男";s:5:"phone";s:9:"123456789";s:7:"address";s:21:"上海市浦东新区";}" 

wddx_serialize_value函数能够连串化数组变量,并以XML字符串情势出口。

您也许感兴趣的小说:

  • PHP种种系列化/反体系化的章程详解
  • 浓厚浅析PHP的session反连串化漏洞难点
  • PHP
    体系化和反类别化函数实例详解
  • 详解PHP中的体系化、反序列化操作
  • 深远深入分析PHP中SESSION反体系化机制
  • php中种类化与反连串化详解
  • PHP中SETiguanIALIZE和JSON的连串化与反体系化操作不同剖判
  • php
    json与xml体系化/反连串化
  • 剖判PHP三种类别化与反种类化的办法
  • 详解PHP体系化和反类别化原理

4. wddx_serialize_value 和 wddx deserialize wddx_serialize_value函数能够体系化数组变量,并以XML字符串格局出口。

serialize() 把变量和它们的值编码成文本方式
unserialize() 复苏原本变量 

$obj = array();
//序列化
$s = base64_encode(serialize($obj));
//反序列化
$original = unserialize(base64_decode($s));

结果:

复制代码 代码如下:

array(5) { 
["name"]=> string(6) "张三" 
["age"]=> string(2) "22" 
["sex"]=> string(3) "男" 
["phone"]=> string(9) "123456789" 
["address"]=> string(21) "上海市浦东新区"
 } 

JSON格式是可读的。

如上正是告诉大家php是什么样开始展览数量的种类化和反类别化的,况兼在遭遇反种类化之后,出现乱码或格式被打乱的原因和解决办法,希望本文的牵线对大家的学习抱有援助。

$a = array(‘a’=> ‘Apple’ ,’b’ => ‘banana’, ‘c’ => ‘Coconut’);

标签:,

Your Comments

近期评论

    功能


    网站地图xml地图