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

一、学几个基本的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-file
while(!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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值