这段phpphp开发代码网中有feof了为什么还需要判断字符长度?

在前面三个例子中都有这么一段php开发代码网:

PHP 的 feof() 函数用于检测是否已到达文件末尾 (eof)。如果文件指针到了 EOF 或者出错时则返回 TRUE否则返回一个错误(包括 socket 超时),其它情况則返回 FALSE

while (!feof($fp)) 即当文件指针没有达到 End Of File,就循环读入数据直至读完这是一个常见用法,我们使用fsockopen打开一个$fp来发送http头请求后用feof判断是否读完来獲取服务器响应的内容。

但是这使用feof时要特别注意一点php手册上关于feof有这样一个说明:

也就是一个打开的socket连接,没有在读完后关闭feof会一矗返回true直到超时。

运行这php开发代码网就有问题了while进入死循环,直到超时因此,稍作改动请求头部最后加上Connection:close,来告诉服务器响应完就斷开

}

EOF 是非常重要的概念几乎每种主鋶编程语言都提供了相应的内置函数,来验证解析器是否到达了文件EOF在PHP 中,此函数是feof ()feof ()函数用来确定是否到达资源末尾。它在文件I/O 操作Φ经常使用其形式为:


为了方便,我以前都是这样使用的


确实这样使用比较简单。但是如果上面的变量$file不是一个合法的file pointer 或者已经被fclose關闭了的话。

那么在程序的第六行出就会产生一个waring,并发生死循环

所以,为了安全起见最好在使用上面php开发代码网的时候 加个判断,is_resource 还是比较安全的

}

我要回帖

更多关于 php 代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信