7天入门php-文件打开/读取/写/常用判断

来源:互联网 发布:素描画图软件 编辑:程序博客网 时间:2024/06/01 10:16

一、学几个基本的php文件操作函数

1、readfile(fileURL) :读取文件,并写入缓冲区。

例:echo readfile("text/txt1.txt"); //打印与当前页面位置同级的text目录下的txt1.txt 文件内容。

说明:php 文件的url比较方便,因为不需像JSP 中配置web.xml,只需文件路径遵循服务器资源路径即可。具体可见:服务器类笔记。


2、fopen(fileURL,model):以模式model 获得打开文件fileURL的句柄。

model说明:(r、w、a、x)

r:只读,文件指针从开头开始。

r+:读或写,其余同。

w:只写,写之前会删除原有内容。文件不存在时,会创建文件。指针从开头开始。

w+:读或写,其余同。

a:append的意思,从原来内容的结尾处开始追加内容。文件不存在时,会创建文件。

a+:读或写,其余同。

x:创建新文件为只写。如果文件已经存在,返回false或错误。

x+:读或写,其余同。

注意:在区分二进制与文本文件的系统(如windows)上,fopen()的model参数要加上b,如fopen("test.txt","rb");

文件句柄可有fopen()或fsockopen()获得。


3、fread($fileHandle,size):fileHandle为fopen等打开的文件,size为读取的最大字节数。

例:

$myfile=fopen("test.txt","rb");$readFile=fread($myfile,filesize("test.txt"));echo $readFile;
说明:filesize(fileURL)返回该文件的长度。(文件指针指向0表示第一个字节)


4、fclose($fileHandle):关闭文件句柄。

例:关闭上面的文件访问:

fclose($myfile);


5、fgets($fileHandle,length):返回长度最多为length-1个字节的字符串。发生错误时返回false。

在遇到EOF 或换行符时,提前停止读取。length默认为1k,即1024字节。

语法:

fgets($fileHandle,size);

Note:

从 PHP 4.3 开始,忽略掉 length 则行的长度被假定为 1024,将继续从流中读取数据直到行结束。如果文件中的大多数行都大于 8KB,则在脚本中指定最大行的长度在利用资源上更为有效。

文档示例:逐行读取文件。

<?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);}?>
更多详细文件读取方法查看:

http://php.net/search.php?show=quickref&pattern=fgets

6、feof($fileHandle):判断是否到达文件尾。

示例:见上。


7、fgetc($fileHandle):读取单个字符。

示例:逐个读取单个字符,直到文件尾。

<?php$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");// 输出单字符直到 end-of-filewhile(!feof($myfile)) {  echo fgetc($myfile);}fclose($myfile);?>
注:fgetc()和有的文件读取函数,指针会随读取自动更新。

8、fwrite($fileHandle,$txt):将字符串$txt 写入文件中。

例:上一小节的留言板处理中:

$fop=fopen("leaveMsgs.txt", 'r');fwrite($fop, $_GET['msgTheme'].":".$_GET['msgContent']."\n");fclose($fop);


小结:

获得文件句柄:

fopen()、fsockopen();

读:

readfile($fileHandle);

fread($fileHandle,length):读取length-1个字节。

fgets($fileHandle,length):读取规定长度。遇到换行符或eof提前结束。实践发现,模式为w或w+时,使用此函数无效。

fgetc($fileHandle):读取单个字符,指针自动加1。

写:

fwrite($fileHandle,$txt):将$txt 写入文件。模式由fopen决定。

判断:

filesize(fileURL):返回文件长度length-1。

feof($fileHandle):返回true/false,判断结尾。

关闭:

fclose($fileHandle);








0 0