PHP 文件指针
文件指针通俗的理解就像是平常操作文档时鼠标指针的位置。PHP 提供了丰富的文件指针函数供使用:
- fclose():关闭文件指针。
- feof():测试文件指针是否到了文件结束的位置。
- fseek():在文件指针中定位。
- rewind():倒回文件指针的位置。
- ftell():返回文件指针读/写的位置。
fclose()
fclose() 函数用于关闭一个已打开的文件指针(将 handle 指向的文件关闭),如果成功则返回 TRUE,失败则返回 FALSE 。
语法:
bool fclose( resource handle )
例子:
<?php $fh = fopen("test.txt","r"); fclose($fh); } ?>
文件指针必须有效,并且是通过 fopen() 或 fsockopen() 成功打开的。
feof()
EOF(End Of File,文件结束位置)是文件处理中非常重要的概念,在 PHP 中提供了 feof() 函数来检测是否达到了 EOF。关于 EOF 更多介绍参看百度百科:http://baike.baidu.com/view/56074.htm
如果文件指针到了 EOF 或者出错时则返回 TRUE,否则返回一个错误(包括 socket 超时),其它情况则返回 FALSE。
语法:
bool feof( resource handle )
例子:
<?php $fh = @fopen("test.txt","r") or die("打开 test.txt 文件出错!"); // if条件避免无效指针 if($fh){ while(!feof($fh)) { echo fgets($fh), '<br />'; } } fclose($fh); ?>
重要提示
如果传递的文件指针无效可能会陷入无限循环中,因为 EOF 不会返回 TRUE。所以在使用 feof() 函数之前对文件指针的有效性进行检测是十分必要的。
fseek()
fseek() 函数用于在文件指针中定位,成功则返回 0 ,否则返回 -1 。
语法:
int fseek( resource handle, int offset [, int whence] )
参数 | 说明 |
---|---|
handle | 文件指针 |
offset | 定位字节数 |
whence | 可选,定位辅助说明,可能的值如下:
如果没有指定 whence,默认为 SEEK_SET。 |
例子:
<?php $fh = fopen('test.txt', 'r'); fseek($fh, 5); echo ftell($fh); //输出:5 ?>
提示:该函数可能不能用于在 fopen() 中以 "http://" 或 "ftp://" 格式打开所返回的文件指针。
rewind()
rewind() 函数用于倒回文件指针的位置到开头,如果成功则返回 TRUE,失败则返回 FALSE 。
语法:
bool rewind( resource handle )
例子:
<?php $fh = fopen("test.txt","r"); rewind($fh); echo ftell($fh); //输出:0 ?>
ftell()
ftell() 函数用于返回文件指针读/写的位置,成功返回 0 ,出错返回 FALSE。
语法:
int ftell ( resource handle )
文件指针必须是有效的,且必须指向一个通过 fopen() 或 popen() 成功打开的文件,使用例子见上。