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字符串截取中文截取2,单字节截取模式
Dec 10 PHP
php minixml详解
Jul 19 PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
Jun 24 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
PHP 等比例缩放图片详解及实例代码
Sep 18 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
PHP封装的验证码工具类定义与用法示例
Aug 22 PHP
PHP利用递归函数实现无限级分类的方法
Mar 22 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数据采集的详解
2013/06/02 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
php类声明和php类使用方法示例分享
2014/03/29 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
六个窍门助你提高Python运行效率
2015/06/09 Python
Python+django实现文件上传
2016/01/17 Python
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
python的多重继承的理解
2017/08/06 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
如何基于python测量代码运行时间
2019/12/25 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
python中如何进行连乘计算
2020/05/28 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
物流管理应届生求职信
2013/11/07 职场文书
决定成败的关键——创业计划书
2014/01/24 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
护士个人年度总结范文
2015/02/13 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书