我有一行代码
$result = stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
如果连接不成功,则会发出警告
WARNING: stream_socket_client(): Failed to enable crypto
我需要压制警告。添加@以使行看起来
$result = @stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
无济于事。 PHP似乎忽略了@
我在这里缺少什么?
答案 0 :(得分:5)
这不是一个很好的解决方案,但您可以暂时禁用警告消息:
$oldErrorReporting = error_reporting(); // save error reporting level
error_reporting($oldErrorReporting ^ E_WARNING); // disable warnings
$result = stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
error_reporting($oldErrorReporting); // restore error reporting level
答案 1 :(得分:1)
使用自定义错误处理程序找到解决方案
set_error_handler(function(){return true;});
stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
restore_error_handler();