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 相关文章推荐
一个简单的域名注册情况查询程序
Oct 09 PHP
php后台程序与Javascript的两种交互方式
Oct 25 PHP
php addslashes和mysql_real_escape_string
Jan 24 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
codeigniter显示所有脚本执行时间的方法
Mar 21 PHP
浅析php设计模式之数据对象映射模式
Mar 03 PHP
PHP微信API接口类
Aug 22 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
thinkphp5使html5实现动态跳转的例子
Oct 16 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 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初学者头疼问题总结
2006/07/08 PHP
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
php生成QRcode实例
2014/09/22 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
php抽奖概率算法(刮刮卡,大转盘)
2020/04/17 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
Python实现端口复用实例代码
2014/07/03 Python
wxPython学习之主框架实例
2014/09/28 Python
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
分分钟入门python语言
2018/03/20 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
Python request使用方法及问题总结
2020/04/26 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
中学自我评价
2014/01/31 职场文书
上课玩手机检讨书
2014/02/08 职场文书
出生公证书样本
2014/04/04 职场文书
关于梦想的演讲稿
2014/05/05 职场文书
公司投资建议书
2014/05/16 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
聘任证明怎么写
2015/03/02 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
Python requests用法和django后台处理详解
2022/03/19 Python