PHP7修改的函数


Posted in PHP onMarch 09, 2021
  • parse_ini_file()和parse_ini_string()的scanner_mode参数增加了INI_SCANNER_TYPED选项。
  • unserialize()增加了第二个参数,可以用来指定接受的类列表。RFC: https://wiki.php.net/rfc/secure_unserialize
  • proc_open()打开的最大限制之前是写死的16,现在这个限制被移除了,最大数量取决于PHP可用的内存。windows版本增加了选项"blocking_pipes",可用来指定是否强制以块的方式读取。
  • array_column():The function now supports an array of objects as well as two-dimensional arrays
  • stream_context_create()windows下面可以接收array("pipe" => array("blocking" => <boolean>))参数。
  • dirname()增加了可选项$levels,可以用来指定目录的层级。dirname(dirname($foo)) => dirname($foo, 2);
  • debug_zval_dump()打印的时候,使用int代替long,使用float代替double。

PHP 过滤 unserialize()

PHP 7 增加了可以为 unserialize() 提供过滤的特性,可以防止非法数据进行代码注入,提供了更安全的反序列化数据。

实例

<?php
class MyClass1 { 
   public $obj1prop;   
}
class MyClass2 {
   public $obj2prop;
}
$obj1 = new MyClass1();
$obj1->obj1prop = 1;
$obj2 = new MyClass2();
$obj2->obj2prop = 2;
$serializedObj1 = serialize($obj1);
$serializedObj2 = serialize($obj2);
// 默认行为是接收所有类
// 第二个参数可以忽略
// 如果 allowed_classes 设置为 false, unserialize 会将所有对象转换为 __PHP_Incomplete_Class 对象
$data = unserialize($serializedObj1 , ["allowed_classes" => true]);
// 转换所有对象到 __PHP_Incomplete_Class 对象,除了 MyClass1 和 MyClass2
$data2 = unserialize($serializedObj2 , ["allowed_classes" => ["MyClass1", "MyClass2"]]);
print($data->obj1prop);
print(PHP_EOL);
print($data2->obj2prop);
?>

#以上程序执行输出结果为:

#1
#2

 

PHP 相关文章推荐
php在线生成ico文件的代码
Oct 09 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
Jul 01 PHP
一个基于phpQuery的php通用采集类分享
Apr 09 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
PHP中把数据库查询结果输出为json格式简单实例
Apr 09 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
Oct 14 PHP
php封装的page分页类完整实例
Oct 18 PHP
thinkPHP显示不出验证码的原因与解决方法分析
May 20 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
Jan 28 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 PHP
PHP中mysqli_get_server_version()的实例用法
Feb 03 PHP
PHP7 弃用功能
Mar 09 #PHP
PHP7 新增功能
Mar 09 #PHP
PHP7 其他修改
Mar 09 #PHP
PHP7 标准库修改
Mar 09 #PHP
PHP7 其他语言层面的修改
Mar 09 #PHP
PHP7 错误处理机制修改
Mar 09 #PHP
PHP7 字符串处理机制修改
Mar 09 #PHP
You might like
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
php实现倒计时效果
2015/12/19 PHP
动态加载iframe
2006/06/16 Javascript
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
js类 from qq
2006/11/13 Javascript
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
vue监听用户输入和点击功能
2019/09/27 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
网络安全方面的面试题
2015/11/04 面试题
内部类的定义、种类以及优点
2013/10/16 面试题
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
毕业设计致谢语
2015/05/14 职场文书
运动会广播稿300字
2015/08/19 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
2015年度女工工作总结
2015/10/22 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
PHP命令行与定时任务
2021/04/01 PHP