PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
PHP
[请益] feof fgets读不到档案的状况下
楼主:
piligo
(霹雳狗)
2016-08-17 23:55:50
程式码如下
$file = fopen("test.txt","r");
while (!feof($file)) {
$value = fgets($file);
print $value . "<br>";
}
fclose($file);
当test.txt不存在时,就会进入无限回圈的产生error log,导致整个磁盘空间被log塞爆
log内容就是下面这两行一直无限回圈
PHP message: PHP Warning: feof() expects parameter 1 to be resource
PHP message: PHP Warning: fgets() expects parameter 1 to be resource
请问,该如何避免读取的档案不存在所延伸的log塞爆问题
谢谢
作者:
LPH66
(-6.2598534e+18f)
2016-08-18 00:15:00
进循环前检查 $file, 这跟 fopen 比较有关反而跟 feof/fgets 无关; 他们只是在说你给了一个奇怪东西fopen 在开档失败时会回传 FALSE, 因此用个 if($file){}包起来即可
楼主:
piligo
(霹雳狗)
2016-08-18 00:54:00
感谢 用if包起来就正常了
作者:
MOONRAKER
(㊣牛鹤鳗毛人)
2016-08-18 09:41:00
这种C语言式的读档到底是有什么好的低阶卡厉害 越低阶越厉害 这样? X(
作者:
shadowjohn
(转角遇到爱)
2016-08-18 11:07:00
如果是大档要作分段进度或分散取用还可以理解
作者:
MOONRAKER
(㊣牛鹤鳗毛人)
2016-08-18 12:25:00
有人这样写读取部份远端档头判断jpeg图片大小 很厉害
http://php.net/manual/en/function.getimagesize.php
但一般使用真是大可不必 都有file()这种接近作弊的东东好用了 怕浪费空间file_get_contents()还可以设offset/maxlength
作者:
GALINE
(天真可爱CQD)
2016-08-18 14:13:00
要读几G或几10G的 log 的时候底层操作是必要的虽然我偏好 $fp=popen('zcat yymmdd*.gz','r')当然有个几十几百G RAM 的时候可以用 file() 来尽情挥霍..
作者:
MOONRAKER
(㊣牛鹤鳗毛人)
2016-08-18 14:30:00
那也太极端
作者:
GALINE
(天真可爱CQD)
2016-08-18 14:31:00
这是我家的常态...小档案是完全没必要这么搞,只是有需要的场合也不少(滚动
继续阅读
[请益] 想请问有关woocommerce的一些小问题点
povertytrap
[闲聊] PhpMyAdmin输出的Excel打不开
cn41408
[请益] 读取MSSQL Image型态资料
sevencom
[请益] radius的认证要怎么写
mwiei
[请益] 新手发问-会员系统、条码报到、检视时数
fenture
[闲聊] 有PHP的line聊天室吗?
winder731022
[请益] Composer 如何下载内部模组?
ckvir
[请益]clone web sites
magus
[请益] 一点PHP的新手小问题
Leorz
[请益] 正则切换字串成array
kiey
Links
booklink
Contact Us: admin [ a t ] ucptt.com