CURL模块:禁止禁用CURLOPT_SAFE_UPLOAD选项,通过curl上传文件必须使用curl_file/CURLFILE接口。
DATE模块:mktime()和gmmktime()函数移除了$is_dst parameter参数。
- DBA模块:dba_delete() 如果在inifile里面没有找到key的时候会返回false。
- GMP模块:必须用libgmp 4.2版本以上。gmp_setbit() and gmp_clrbit()如果传入的index为负数的话,会返回false。
- Intl模块:移除了别名函数datefmt_set_timezone_id() 和IntlDateFormatter::setTimeZoneID(),用datefmt_set_timezone() 和IntlDateFormatter::setTimeZone()
- libxml模块:新增ibxml 2.9.0引入的LIBXML_BIGLINES 选项,并在错误报告中增加了行号> 16-bit的支持。
- Mcrypt模块:.移除了mcrypt_generic_end() mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() 和mcrypt_ofb()
- Opcache:移除了opcache.load_comments配置项,现在注释加载总是被激活的。
- OpenSSL:移除了"rsa_key_size"、"CN_match" 、"SNI_server_name" 选项。
- PCRE:移除了 /e (PREG_REPLACE_EVAL) 修饰符的支持,使用preg_replace_callback()来代替。
- PDO_pgsql:删除了PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT选项。
- Standard:删除了setlocale()函数里面对字符串类型的支持,使用LC_*常量。删除了set_magic_quotes_runtime() magic_quotes_runtime().
- JSON:json_decode()会拒绝与RFC 7159不兼容的数字格式。json_decode第一个参数是空值的时候会返回json语法错误。
- Stream:删除别名函数set_socket_blocking()
- XSL:删除xsl.security_prefs 选项。
- session
- session_start()可以接受所有的INI设置,可以用数组的方式传入,比如:['cache_limiter'=>'private']
- save handler接受validate_sid(), update_timestamp() ,可用来检查sid是否存在,更新session数据的时间戳。
- 增加了SessionUpdateTimestampHandlerInterface,这个接口里面定义了validateSid(), updateTimestamp()方法。
session.lazy_write(default=On) 配置项可以允许只有session数据有变化时才写数据。
PHP 7 Session 选项
PHP 7 session_start()函数可以接收一个数组作为参数,可以覆盖php.ini中session的配置项。
这个特性也引入了一个新的php.ini设置(session.lazy_write),默认情况下设置为 true,意味着session数据只在发生变化时才写入。
除了常规的会话配置指示项, 还可以在此数组中包含 read_and_close 选项。如果将此选项的值设置为 TRUE, 那么会话文件会在读取完毕之后马上关闭, 因此,可以在会话数据没有变动的时候,避免不必要的文件锁。
实例
把cache_limiter设置为私有的,同时在阅读完session后立即关闭。
<?php session_start([ 'cache_limiter' => 'private', 'read_and_close' => true, ]); ?>