由PHP7.0.18的一个更新Fixed bug #74216引发的问题

PHP修复了一个关于Streams的安全问题:

Fixed bug #74216 (Correctly fail on invalid IP address ports). https://bugs.php.net/bug.php?id=74216
由此,可能会导致一些不兼容的问题。

在这里描述的地址 http://php.net/manual/zh/transports.inet.php

如tcp://127.0.0.1:80  此地址后面不能再加任何字符,如tcp://127.0.0.1:80/ 和tcp://127.0.0.1:80/id都将是非法的.

主要在于一些socket 函数如fsockopen

fsockopen("192.168.184.132:53/", 80, $errno, $errstr, 30);
Streams函数
$fp = stream_socket_client("tcp://192.168.6.76:1883/", $errno, $errstr, 30);
mysqli函数如:
mysqli_connect("127.0.0.1:3306", "user", "pass", "schema");

都将不能运行,需要改为以下
fsockopen("192.168.184.132:53", 80, $errno, $errstr, 30);
$fp = stream_socket_client("tcp://192.168.6.76:1883", $errno, $errstr, 30);
mysqli_connect("127.0.0.1", "user", "pass", "schema");

 

=======

最新:此不兼容问题,好像在7.0.19版本又恢复了,PHP最近出现一些反复问题,不太好。

由PHP7.0.18的一个更新Fixed bug #74216引发的问题
标签: