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 彩色文字实现代码
Jun 29 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
php计算两个日期相差天数的方法
Mar 14 PHP
php使用array_search函数实现数组查找的方法
Jun 12 PHP
Symfony2实现在controller中获取url的方法
Mar 18 PHP
php获取访问者浏览页面的浏览器类型
Jan 23 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 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错误、异常处理类
2014/03/21 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
基于jQuery日历插件制作日历
2016/03/11 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
python操作gmail实例
2015/01/14 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
Python urllib3软件包的使用说明
2020/11/18 Python
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
行政部主管岗位职责
2013/12/28 职场文书
党校学习思想汇报
2014/01/06 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
团支部建设方案
2014/05/02 职场文书
暑假学习心得体会
2014/09/02 职场文书
大学军训的体会
2014/11/08 职场文书
2014年实习生工作总结
2014/11/27 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫