首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测无效的PHP资源流

检测无效的PHP资源流
EN

Stack Overflow用户
提问于 2012-10-03 11:23:27
回答 1查看 1.4K关注 0票数 3

如何检测流资源不再有效?我有一个脚本,它显然会杀死、残害或威胁一些fsockek_open()连接资源,因此它经常在没有任何警告的情况下消失。下面是我的脚本中的var_dumps。

代码语言:javascript
复制
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

if($resource)这样的基本检查会返回TRUE,这会导致像这样的检查出现问题。

代码语言:javascript
复制
if($resource AND !feof($resource))

资源上的第一个布尔检查可以工作,但feof失败会导致错误,因为当测试条件的后半部分时,流现在是未知的。

代码语言:javascript
复制
PHP Warning:  feof(): 6 is not a valid stream resource

这使得这样的例子行不通。

代码语言:javascript
复制
while ($resource AND ! feof($resource)) <-- fails with error
{
    $buffer .= fread($resource);
}
fclose($resource);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-03 11:39:55

我以为我已经尝试过了,但是一个简单的资源检查似乎就能在它的轨迹中发现问题所在。

代码语言:javascript
复制
if(is_resource($this->socket) AND !feof($this->socket))
{
    // goodness
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12701446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档