您如何检测流资源不再有效?我有一个脚本显然会杀死、破坏或威胁一些fsockek_open()
连接资源,因此它经常会在没有任何警告的情况下消失。以下是我脚本中的 var_dumps。
resource(6) of type (stream)
resource(6) of type (stream)
resource(6) of type (stream)
resource(6) of type (Unknown) <-- causes feof() error on next check because it's not valid
像 return TRUE 这样的基本检查if($resource)
会在像这样检查时导致问题。
if($resource AND !feof($resource))
对资源的第一次布尔检查有效,但 feof 失败导致错误,因为在测试条件的后半部分时流现在是未知的。
PHP Warning: feof(): 6 is not a valid stream resource
这使得这样的例子不起作用。
while ($resource AND ! feof($resource)) <-- fails with error
{
$buffer .= fread($resource);
}
fclose($resource);