fgets

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

fgets從文件指針中讀取一行

說明

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

從文件指針中讀取一行。

參數(shù)

handle

文件指針必須是有效的,必須指向由 fopen()fsockopen() 成功打開的文件(并還未由 fclose() 關(guān)閉)。

length

handle 指向的文件中讀取一行并返回長(zhǎng)度最多為 length - 1 字節(jié)的字符串。碰到換行符(包括在返回值中)、EOF 或者已經(jīng)讀取了 length - 1 字節(jié)后停止(看先碰到那一種情況)。如果沒有指定 length,則默認(rèn)為 1K,或者說 1024 字節(jié)。

返回值

從指針 handle 指向的文件中讀取了 length - 1 字節(jié)后返回字符串。 如果文件指針中沒有更多的數(shù)據(jù)了則返回 false

錯(cuò)誤發(fā)生時(shí)返回 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 電腦中或由其創(chuàng)建的文件時(shí), 如果 PHP 不能正確的識(shí)別行結(jié)束符,啟用運(yùn)行時(shí)配置可選項(xiàng) auto_detect_line_endings 也許可以解決此問題。

注意:

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

參見

  • fgetss() - 從文件指針中讀取一行并過濾掉 HTML 標(biāo)記
  • fread() - 讀取文件(可安全用于二進(jìn)制文件)
  • fgetc() - 從文件指針中讀取字符
  • stream_get_line() - 從資源流里讀取一行直到給定的定界符
  • fopen() - 打開文件或者 URL
  • popen() - 打開進(jìn)程文件指針
  • fsockopen() - 打開一個(gè)網(wǎng)絡(luò)連接或者一個(gè)Unix套接字連接
  • stream_set_timeout() - Set timeout period on a stream