由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最近出现一些反复问题,不太好。