fgets

(PHP 3, PHP 4, PHP 5)

fgets -- 從檔案指標中讀取一行

說明

string fgets ( int handle [, int length] )

handle 指向的檔案中讀取一行並返回長度最多為 length - 1 位元組的字串。碰到換行符(內含在返回值中)、EOF 或是已經讀取了 length - 1 位元組後停止(看先碰到那一種情況)。若果沒有指定 length,則預設為 1K,或是說 1024 位元組。

出錯時返回 FALSE

通常的缺陷:

習慣了 C 語系中 fgets() 語法的人應該注意到 EOF 是怎樣被返回的。

檔案指標必須有效,並且必須指向一個由 fopen()fsockopen() 成功開啟(但還沒有被 fclose() 關閉)的檔案。

以下是一個簡單例子:

例子 1. 逐行讀取檔案

<?php
$handle 
= @fopen("/tmp/inputfile.txt""r");
if (
$handle) {
    while (!
feof($handle)) {
        
$buffer fgets($fd4096);
        echo 
$buffer;
    }
    
fclose($handle);
}
?>

注: length 參數從 PHP 4.2.0 起成為可選項,若果忽略,則行的長度被假定為 1024。從 PHP 4.3 開始,忽略掉 length 將繼續從流中讀取資料直到行結束。若果檔案中的大多數行都大於 8KB,則在腳本中指定最大行的長度在利用資源上更為有效。

注: 從 PHP 4.3 開始本函數可以安全用於二進位檔案。早期的版本則不行。

注: 若果碰到 PHP 在讀取檔案時不能識別 Macintosh 檔案的行結束符,可以啟動 auto_detect_line_endings 運行時配置選項。

參見 fgetss()fread()fgetc()stream_get_line()fopen()popen()fsockopen()stream_set_timeout()