下面通过一些简单示例带你了解PHP的文件操作。
1、打开及关闭文件
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
mode |
说明 |
'r' |
只读方式打开,将文件指针指向文件头。 |
'r+' |
读写方式打开,将文件指针指向文件头。 |
'w' |
写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
'w+' |
读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
'a' |
追加方式打开。写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
'a+' |
追加方式打开。读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
'x' |
创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE ,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。 |
'x+' |
创建并以读写方式打开,其他的行为和 'x' 一样。 |
b |
二进制模式,用于与其它模式进行连接,默认方式是二进制模式。 |
t |
文本文件模式,用于与其它模式进行连接。 |
关闭打开的文件:bool fclose ( resource $handle )
<?php
$fileName='D:\tmp.txt';
$handle=fopen($fileName, "rb");
while(!feof($handle)){
echo fgets($handle);
}
fclose($handle);
?>
2、读写文件
- 读取整个文件内容
reaffile()、file()和file_get_contents()用于读取整个文件内容。使用这三个函数读取文件内容不需要打开关闭文件。
- int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )
readfile()读取整个文件的内容并写入到缓存中,出错则返回fase。
- array file ( string $filename [, int $flags = 0 [, resource $context ]] )
file()函数读取整个文件的内容按行存储到数组中,包括换行符在内。
可选参数 flags 可以是以下一个或多个常量:
FILE_USE_INCLUDE_PATH
在 include_path 中查找文件。
FILE_IGNORE_NEW_LINES
在数组每个元素的末尾不要添加换行符
FILE_SKIP_EMPTY_LINES
跳过空行
- string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
file_get_contents()将文件内容读入到一个字符串,如果有offset及maxlen参数,则从参数offset指定的位置开始读取长度为maxlen的一个字符串,如果读取失败则返回false。
【例1】使用readfile()函数
<?php
$fileName='D:\tmp.txt';
readfile($fileName);//显示所有内容
$a=readfile($fileName);//返回总字数并且显示所有内容
echo $a;
?>
【例2】使用file()函数
<?php
$fileName='D:\tmp.txt';
if (file_exists($fileName))//判断文件是否存在
{
$arr=file($fileName);
foreach ($arr as $value){ //每次输出一个文本文件的段落
echo $value.'<p>';
}
}
?>
【例3】使用file_get_c