Discuz 反序列化数组分析
发布时间:2021-11-30 17:43:07 所属栏目:PHP教程 来源:互联网
导读:先来实例解释一下PHP中的序列化数组 [代码]php代码: 1 ?php 2 $arr = array(张三,李四); //定义数组 3 $str = serialize($arr); //这里是序列化$arr 4 echo $str.br/br/; 5 $new_arr = unserialize($str); //这里是反序列化$str 6 print_r($new_arr); 7 ?
先来实例解释一下PHP中的序列化数组 [代码]php代码: 1 <?php 2 $arr = array('张三','李四'); //定义数组 3 $str = serialize($arr); //这里是序列化$arr 4 echo $str."<br/><br/>"; 5 $new_arr = unserialize($str); //这里是反序列化$str 6 print_r($new_arr); 7 ?> 序列化对应的函数为 serialize(), 反序列化对应的函数为:unserialize() 。 可以将前者序列化之后的数据存到数据库的某个字段中,使用时再通过反序列化处理。 那么,在discuz中,我们通过一个实例来了解如何反序列化处理 以分类信息中上传图片字段为例。这个字段是采用先把内容包装到一个数组(内容包含图片的存储路径和这个图片的id),然后序列化保存在value字段中。如果我们只需要其中的图片路径。那么就需要对存入到value字段中的序列化数组进行反序列化。当然,这里需要注意的一个问题,如图: 在这里我们需要注意一个符号。反斜杠“”。(猜测是因为编辑内容后生成的)。所以,在这里我们就需要多一道工序。 首先是查询数据库,这里忽略.....(所用的表是:pre_forum_typeoptionvar) 查询完,首先需要去掉反斜杠才能对数组反序列化处理。直接反序列化数组值是空。 第一步去掉反斜杠 [代码]php代码: 1 <!--{eval $value_1 = stripcslashes($value)}--> 第二步反序列化数组 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读