我有一段代码可以打开套接字连接。不时发生fgets返回假。我想知道为什么会这样。是否有函数可以提供有关 $handle
上最后一个错误的更多详细信息?类似于 preg_last_error
、json_last_error
、...
同样的问题可以应用于函数 stream_get_line() .
我使用的是 PHP 5.4,E_ALL
在 error_reporting 中(即它甚至包括 E_NOTICE
)。没有抛出任何错误。
最佳答案
注意这是未经测试的代码。我还没有安装 PHP 来试用它。
您应该能够使用您在设置连接时创建的上下文来执行此操作。
$context = stream_context_create();
stream_context_set_params(
$context,
array(
'notification' => function(
$notification_code,
$severity,
$message,
$message_code
) {
switch ($notification_code) {
case: STREAM_NOTIFY_FAILURE
print_r(array(
'message' => $message,
'message_code' => $message_code,
));
break;
}
},
)
);
$socket = stream_socket_client ($remote_socket, &$errno, &$errstr, ini_get("default_socket_timeout"), STREAM_CLIENT_CONNECT, $context);
fgets
现在应该在发生错误时调用错误处理程序。
很抱歉,我现在无法测试...
关于php - 如何获取函数 stream_get_line 和 fgets 的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19741117/