如何運(yùn)用PHP函數(shù)fgets讀取指針文件
PHP語(yǔ)言中,有許多功能強(qiáng)大的函數(shù)支持著這項(xiàng)語(yǔ)言不斷的向前發(fā)展,餅讓越來(lái)越的程序員開(kāi)始選擇這項(xiàng)語(yǔ)言的運(yùn)用。PHP函數(shù)fgets就是其中一個(gè)功能強(qiáng)大的函數(shù)。#t#
PHP函數(shù)fgets -- 從文件指針中讀取一行說(shuō)明
string fgets ( int handle [, int length] )
從 handle 指向的文件中讀取一行并返回長(zhǎng)度最多為 length - 1 字節(jié)的字符串。碰到換行符(包括在返回值中)、EOF 或者已經(jīng)讀取了 length - 1 字節(jié)后停止(看先碰到那一種情況)。如果沒(méi)有指定 length,則默認(rèn)為 1K,或者說(shuō) 1024 字節(jié)。
出錯(cuò)時(shí)返回 FALSE。
PHP函數(shù)fgets通常的缺陷:
習(xí)慣了C 語(yǔ)言中 fgets() 語(yǔ)法的人應(yīng)該注意到 EOF 是怎樣被返回的。
文件指針必須是有效的,并且必須指向一個(gè)由 fopen() 或 fsockopen() 成功打開(kāi)的文件。
以下是一個(gè)PHP函數(shù)fgets簡(jiǎn)單例子: 例子 1. 逐行讀取文件
- < ?php
- $handle = fopen("/tmp/
inputfile.txt", "r");- while (!feof($handle)) {
- $buffer = fgets($fd, 4096);
- echo $buffer;
- }
- fclose($handle);
- ?>
注: length 參數(shù)從 PHP 4.2.0 起成為可選項(xiàng),如果忽略,則行的長(zhǎng)度被假定為 1024。從 PHP 4.3 開(kāi)始,忽略掉 length 將繼續(xù)從流中讀取數(shù)據(jù)直到行結(jié)束。如果文件中的大多數(shù)行都大于 8KB,則在腳本中指定最大行的長(zhǎng)度在利用資源上更為有效。
注: 從 PHP 4.3 開(kāi)始本函數(shù)可以安全用于二進(jìn)制文件。早期的版本則不行。
注: 如果碰到PHP函數(shù)fgets在讀取文件時(shí)不能識(shí)別 Macintosh 文件的行結(jié)束符,可以激活 auto_detect_line_endings 運(yùn)行時(shí)配置選項(xiàng)。