文件读取/写入操作
fopen()函数:用来打开一个文件,打开时需要指定打开模式
打开模式
- r只读方式打开,将文件指针指向文件头
- r+读写方式打开,将文件指针指向文件头
- w写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之
- w+读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之
- a写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之
- a+读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之
- x创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之
- x+创建并以读写方式打开,其他的行为和 ‘x’ 一样
- b二进制
- t
写入函数
- fwrite()写入文件(可安全用于二进制文件)
- fputs() fwrite() 的别名
读取函数
- fread()读取文件
- fgets()从文件指针中读取一行
- fgetc()从文件指针中读取字符
- 关闭函数:fclose()
不需要fopen()打开的函数
- file_get_contents():
- file_put_contents():
其他读取函数
- file()把整个文件读入一个数组中
- readfile()输出文件
目录操作函数
名称相关
- basename()返回路径中的文件名部分
- dirname()返回路径中的目录部分
- pathinfo()返回文件路径的信息
目录读取
- opendir()打开目录句柄,打开一个目录句柄,可用于之后的 closedir(),readdir() 和 - rewinddir() 调用中
- readdir()从目录句柄中读取条目
- closedir()关闭目录句柄
- rewinddir()倒回目录句柄
- 目录创建mkdir()
- 目录删除rmdir()
其他函数
- 文件大小:filesize()
- 目录大小:disk_free_space()、disk_total_space()
- 文件拷贝:copy()
- 删除文件:unlink()
- 文件类型:filetype()
- 重命名文件或者目录:rename()
- 文件截取:ftruncate()
- 文件属性:file_exists、is_readable()、is_writeable()、is_executeable()、filectime()、fileatime()、filemtime();
- 文件锁:flock():
- 文件指针:
-
- ftell():返回文件指针读/写的位置
-
- fseek(): 在文件指针中定位
-
- rewind():将文件指针的位置倒回文件的开头
<?php
//demo1
$file = './hello.txt';
//打开文件
$handle = fopen($file, 'r');
//将文件的内容读取出来,在开头加入hello world
$content = fread($handle, filesize($file));
//将拼接好的字符串回到文件当中
$content = 'hello world'.$content;
fclose($handle);
$handle = fopen($file,'w');
fwrite($handle,$content);
fclose($handel);
//demo2
$dir = './test';
//打开目录
//读取目录中的文件
//如果文件类型是目录,继续打开目录
//读取子目录的文件
//如果文件类型是文件,输出文件名称
//关闭目录
function loopDir($dir)
{
$handle = opendir($dir);
while(false !== ($file = readdir($handle)))
{
if($file != '.' && $file != '..')
{
echo $file."\n";
if (filetype ($dir.'/'.$file) == 'dir')
{
loopDir($dir.'/'.$file);
}
}
}
}
loopDir($dir);