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($handle, 4096)) !== 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