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开发规范手册之PHP代码规范详解
Jan 13 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
Mar 19 PHP
PHP请求Socket接口测试实例
Aug 12 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
Laravel框架实现利用监听器进行sql语句记录功能
Jun 06 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 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两种快速排序算法实例
2015/02/15 PHP
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
TBCompressor js代码压缩
2011/01/05 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
loading动画特效小结
2017/01/22 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
python基本语法练习实例
2017/09/19 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
python字符串判断密码强弱
2020/03/18 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
介绍下WebSphere的安全性
2013/01/31 面试题
学前教育毕业生自荐信范文
2013/12/24 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
高考备战决心书
2014/03/11 职场文书
货车司机岗位职责
2014/03/18 职场文书
婚纱店策划方案
2014/05/22 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
病危通知单
2015/04/17 职场文书
竞聘书的秘诀
2019/04/02 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android