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的FTP学习(一)
Oct 09 PHP
默默简单的写了一个模板引擎
Jan 02 PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 PHP
PHP无限分类(树形类)的深入分析
Jun 02 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
教你在PHPStorm中配置Xdebug
Jul 27 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 PHP
PHP的PDO预定义常量讲解
Jan 24 PHP
php的instanceof和判断闭包Closure操作示例
Jan 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连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
PHP转盘抽奖接口实例
2015/02/09 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
Python中用max()方法求最大值的介绍
2015/05/15 Python
Python3实现从文件中读取指定行的方法
2015/05/22 Python
Python实现简易端口扫描器代码实例
2017/03/15 Python
详解Python if-elif-else知识点
2018/06/11 Python
python字符串循环左移
2019/03/08 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
python开发前景如何
2020/06/11 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
一篇.NET面试题
2014/09/29 面试题
项目计划书范文
2014/01/09 职场文书
早读迟到检讨书
2014/01/24 职场文书
策划总监岗位职责
2014/02/16 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
幼儿生日活动方案
2014/08/27 职场文书
索赔员岗位职责
2015/02/15 职场文书
2015年商场工作总结
2015/04/27 职场文书
环保建议书作文400字
2015/09/14 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
Python实现滑雪小游戏
2021/09/25 Python
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers