Discuz 反序列化数组讲解

849
管理员VIP特权升级VIP整站资源永久免费下载 点我升级VIP
标签 :discuzdiscuz教程2019-03-31

详情介绍

参考实例解释一下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)}-->

第二步反序列化数组


1、升级本站永久VIP,仅需【49】元即可升级 ! ! ! (升级后永久享受整站资源全部免费下载)

2、站内资源均可通过签到等任务进行免费兑换。

3、站内资源均来源于网络公开发表文件或网友投稿发布,如侵犯您的权益,请联系管理员处理。

4、本站所分享的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!

5、所有资源均收集于互联网仅供学习、参考和研究,请理解这个概念,所以不能保证每个细节都符合你的需求,也可能存在未知的BUG与瑕疵,因本站资源均为可复制品,所以不支持任何理由的退款兑现(特殊情况可退积分),请熟知后再支付下载!

评论(0)条