測試檔案指針是否到了檔案結束的位置

feof

(PHP 4, PHP 5, PHP 7, PHP 8)

feof測試檔案指針是否到了檔案結束的位置

說明

feof(resource $handle): bool

測試檔案指針是否到了檔案結束的位。

參數

handle

檔案指針必須是有效的,必須指向由 fopen()fsockopen() 成功打開的檔案(並還未由 fclose() 關閉)。

返回值

如果檔案指針到了 EOF 或者出錯時則返回 true,否則返回一個錯誤(包括 socket 超時),其它情況則返回 false

註釋

警告

如果伺服器沒有關閉由 fsockopen() 所打開的連線,feof() 會一直等待直到超時。要解決這個問題可參見以下範例:

示例 #1 處理 feof() 的超時

<?php
function safe_feof($fp, &$start NULL) {
 
$start microtime(true);

 return 
feof($fp);
}

/* $fp 的賦值是由之前 fsockopen() 打開  */

$start NULL;
$timeout ini_get('default_socket_timeout');

while(!
safe_feof($fp$start) && (microtime(true) - $start) < $timeout)
{
 
/* Handle */
}
?>
警告

如果傳遞的檔案指針無效可能會陷入無限循環中,因為 feof() 不會返回 true

示例 #2 使用無效檔案指針的 feof() 例子

<?php
// 如果檔案不可讀取或者不存在,fopen 函式返回 FALSE
$file = @fopen("no_such_file""r");

// 來自 fopen 的 FALSE 會發出一條警告資訊並在這裡陷入無限循環
while (!feof($file)) {
}

fclose($file);
?>

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *