php 7.0.4 windows发布了,因为kephp里面有几个地方对这次修改的bug依赖,所以第一时间先升级了。
这次升级,openssl从f升级到g了,所以如果你的php发布运行环境是基于windows的,请记得更新openssl相关的.dll文件。
升级步骤,比较粗暴简单(我本机是xampp php x86 ts):
先停止了当前的xampp的apache。
下载http://windows.php.net/downloads/releases/php-7.0.4-Win32-VC14-x86.zip
将里面的内容全部解压到当前xampp目录下的php,当前前提是这个目录之前就是php7的,如果是php5,别这么搞。这样就不用修改php.ini,ext等配置的内容了。
将php目录下的ssleay32.dll和libeay32.dll文件复制到apache/bin目录下,覆盖原来文件。
启动xampp的apache
openssl 1.0.2g
php-7.0.4
extension/imagick
7.0.4修正了ArrayObject无法访问对象的private属性的问题,finfo_file对特定的内容的文件识别报Notice错误。不过貌似realpath在phar包下无法正确识别路径的问题仍未修复。
realpath在phar下的识别,是一个颇严重的bug。详情可见此文件:
简单说,就是在phar包内的路径,直接用realpath('phar://file'),他会返回一个false的值,但实际上,这个false只是表面值,他实际上是一个有效的路径,你只要做一层判断就能绕过这个问题:
function let_it_work(string $path){ $realPath = realpath($path); if ($realPath !== false) { $path = $realPath; } return $path;}
经过这个函数,会发现结果又正确了,这不能不说是一个相当诡异的问题。
以上,完毕。