×
PHP 7新特性简单认识PHP7如何配置PHP7环境如何在Linux/Unix上安装PHP在Mac OS X系统中的安装PHP使用IIS在Windows上安装PHPApache如何在Windows上安装PHP7功能之标量类型声明返回类型声明在PHP中的使用PHP7空合并运算符如何使用PHP7中如何使用太空船操作符PHP7定义常量数组和匿名类PHP7中Closure :: call使用示例如何使用过滤unserialize()函数PHP7如何使用IntlChar伪随机数产生器CSPRNGPHP7的期望是如何使用的?PHP7如何使用use语句如何进行错误处理的?PHP是如何计算整数除法的?什么是PHP7的Session选项PHP7弃用了哪些功能PHP7中移除的扩展和SAPI

PHP7更新记录

PHP7.2.0 RC6 发布,修复bug

在PHP7中如何使用过滤unserialize()函数


unserialize - 从已存储的表示中创建 PHP 的值

PHP7 引入了过滤 unserialize () 函数,以便在不受信任的数据上反序列化对象时提供更好的安全性。它可以防止可能的代码注入,并使开发人员能够将可以不序列化的类列入白名单。

示例

obj1prop = 1;
   $obj2 = new MyClass2();
   $obj2->obj2prop = 2;

   $serializedObj1 = serialize($obj1);
   $serializedObj2 = serialize($obj2);

   // default behaviour that accepts all classes
   // second argument can be ommited.
   // if allowed_classes is passed as false, unserialize converts all objects into __PHP_Incomplete_Class object
   $data = unserialize($serializedObj1 , ["allowed_classes" => true]);

   // converts all objects into __PHP_Incomplete_Class object except those of MyClass1 and MyClass2
   $data2 = unserialize($serializedObj2 , ["allowed_classes" => ["MyClass1", "MyClass2"]]);

   print($data->obj1prop);
   print("
"); print($data2->obj2prop); ?>

它产生以下浏览器输出:

1
2

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)