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