從檔案指針中讀取一行

fgets

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

fgets從檔案指針中讀取一行

說明

fgets(resource $handle, int $length = ?): string

從檔案指針中讀取一行。

參數

handle

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

length

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

返回值

從指針 handle 指向的檔案中讀取了 length - 1 位元組后返回字串。 如果檔案指針中沒有更多的數據了則返回 false

錯誤發生時返回 false

範例

示例 #1 逐行讀取檔案

<?php
$handle 
= @fopen("/tmp/inputfile.txt""r");
if (
$handle) {
    while ((
$buffer fgets($handle4096)) !== false) {
        echo 
$buffer;
    }
    if (!
feof($handle)) {
        echo 
"Error: unexpected fgets() fail\n";
    }
    
fclose($handle);
}
?>

註釋

注意: 在讀取在 Macintosh 電腦中或由其建立的檔案時, 如果 PHP 不能正確的識別行結束符,啟用執行時配置可選項 auto_detect_line_endings 也許可以解決此問題。

注意:

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

參見

  • fgetss() - 從檔案指針中讀取一行並過濾掉 HTML 標記
  • fread() - 讀取檔案(可安全用於二進制檔案)
  • fgetc() - 從檔案指針中讀取字元
  • stream_get_line() - 從資源流里讀取一行直到給定的定界符
  • fopen() - 打開檔案或者 URL
  • popen() - 打開程序檔案指針
  • fsockopen() - 打開一個網路連線或者一個Unix套接字連線
  • stream_set_timeout() - Set timeout period on a stream

發佈留言

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