(PHP 4, PHP 5, PHP 7, PHP 8)
fgets — 從文件指針中讀取一行
$handle
, int $length
= ?): string從文件指針中讀取一行。
handle
文件指針必須是有效的,必須指向由 fopen() 或 fsockopen() 成功打開(kāi)的文件(并還未由 fclose() 關(guān)閉)。
length
從 handle
指向的文件中讀取一行并返回長(zhǎng)度最多為 length
- 1
字節(jié)的字符串。碰到換行符(包括在返回值中)、EOF 或者已經(jīng)讀取了 length - 1
字節(jié)后停止(看先碰到那一種情況)。如果沒(méi)有指定
length
,則默認(rèn)為 1K,或者說(shuō) 1024 字節(jié)。
從指針 handle
指向的文件中讀取了 length
- 1 字節(jié)后返回字符串。
如果文件指針中沒(méi)有更多的數(shù)據(jù)了則返回 false
。
錯(cuò)誤發(fā)生時(shí)返回 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 電腦中或由其創(chuàng)建的文件時(shí), 如果 PHP 不能正確的識(shí)別行結(jié)束符,啟用運(yùn)行時(shí)配置可選項(xiàng) auto_detect_line_endings 也許可以解決此問(wèn)題。
注意:
習(xí)慣了 C 語(yǔ)言中 fgets() 語(yǔ)法的人應(yīng)該注意到
EOF
是怎樣被返回的。