Home > php教程 > php手册 > body text

PHP中feof函数有可能造成死循环

WBOY
Release: 2016-06-06 20:08:07
Original
1348 people have browsed it

前段时间公司的一个页面经常报告超时,本来以为是发邮件导致的超时。后来把邮件发送拆成异步之后,超时的问题并没有解决。于是仔细研究了下超时附近的代码段。 发现有类似一下的代码: ?php $file = fopen"contacts.csv","r"; while! feof$file print_rfgetc

前段时间公司的一个页面经常报告超时,本来以为是发邮件导致的超时。后来把邮件发送拆成异步之后,超时的问题并没有解决。于是仔细研究了下超时附近的代码段。

发现有类似一下的代码:

<?php $file = fopen&#40;"contacts.csv","r"&#41;;  while&#40;! feof&#40;$file&#41;&#41; &#123;   print_r&#40;fgetcsv&#40;$file&#41;&#41;; &#125;  fclose&#40;$file&#41;;  ?>
Copy after login

其实上面的代码就是W3scholl的示例代码。

如果没有仔细看过PHP的手册,大概看不出这段代码有什么问题?

问题的关键就在feof这个函数,手册上有明确的说明:

If the passed file pointer is not valid you may get an infinite loop, because feof() fails to return TRUE.
Copy after login

详见:http://cn2.php.net/feof

所以上面的代码如果打开的文件失败,就会导致死循环,从而引起页面超时。


评论| 作者: tomheng 85159e08d5f1f50d244825cb03e92c65PHP中feof函数有可能造成死循环
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template