一、PHP是以UNIX的文件系统为模型的。在*nix上可以有七种文件类型,而在win上只有'file'、'dir'、'unknown'三种类型,在unix上的七种类型如下:
文件类型 | 描述 |
block | 块设备文件,如磁盘块,光驱等 |
char | 字符设备,以字符为单位传送的设备,如键盘等 |
dir | 目录类型,目录也是文件的一种 |
fifo | 命名管道,用于将信息从一个进程传递到另一个进程 |
file | 普通文件类型 |
link | 符号链接,是指向文件指针的指针 |
unknown | 未知类型 |
二、PHP文件属性处理函数。
函数名 | 作用 | 参数 | 返回值 |
file_exists() | 检查文件或者目录是否存在 | 文件名 | 文件存在返回true,否则返回false |
filesize() | 取得文件大小 | 文件名 | 返回文件大小,出错返回false |
is_readable() | 判断给定文件名是否可读 | 文件名 | 文件存在且可读返回true |
is_writable() | 判断给定文件名是否可写 | 文件名 | 文件存在且可写返回true |
is_executable() | 判定给定文件名是否可执行 | 文件名 | 文件存在且可执行返回true |
filectime() | 获取文件创建时间 | 文件名 | 返回文件的创建时间戳 |
filemtime() | 获取文件修改时间 | 文件名 | 返回文件的修改时间戳 |
fileatime() | 获取文件访问时间 | 文件名 | 返回文件的访问时间戳 |
stat() | 获取文件的大部分属性值 | 文件名 | 返回文件的信息数组 |
注意:以上函数所获得的文件信息将被PHP缓存,若该文件在脚本执行期间有被修改的危险,应该使用clearstatcache()清除缓存。
三、PHP目录操作函数。
函数名 | 作用 | 参数 | 返回值 |
basename() | 返回路径中的文件名部分 | 路径,[文件后缀名] | 不传入后缀名则返回整个文件名包括后缀名 |
dirname() | 返回路径中的路径 | 全路径 | 路径名 |
pathinfo() | 返回关联数组 | 全路径 | 包含路径,基本名,后缀名的数组 |
opendir() | 打开一个目录 | 路径名 | 返回一个目录句柄 |
readdir() | 读取目录句柄中的一个文件名 | 目录句柄 | 返回目录句柄中的一个文件名,并将文件指针后移一位,移动到目录尾部则返回false |
rewindir() | 倒回目录句柄 | 目录句柄 | 将文件指针移动会目录开头 |
closedir() | 关闭目录句柄 | 目录句柄 | 将opendir打开的句柄关闭 |
mkdir() | 创建一个目录 | 路径,[mode] | 成功返回true,否则false |
rmdir() | 删除一个空目录 | 路径 | 成功返回true,否则false(若文件夹里有文件,得先删除文件) |
也可使用dir类,不过个人觉得不是很有用
四、PHP文件操作
函数名 | 作用 | 参数 |
fopen() | 打开一个文件,返回文件句柄 | 路径,模式 |
fclose() | 关闭一个已经打开的文件 | 文件句柄 |
fwrite() | 将规定长度的内容写入文件 | 文件句柄,内容,[长度] |
file_put_contents() | 将一个字符串写入文件 | 文件句柄,内容 |
feof() | 判断文件句柄的指针是否已经在末尾 | 文件句柄 |
copy() | 复制一个文件 | 文件句柄,位置 |
unlink() | 删除一个文件 | 文件句柄 |
ftruncate() | 截取文件 | 文件句柄,截取长度 |
rename() | 重命名文件 | 文件句柄,新名字 |
文件读取函数
函数名 | 作用 | 参数 |
fread() | 读取打开的文件 | 文件句柄,长度 |
file_get_contents() | 将文件读入字符串 | 文件句柄 |
filegets() | 从打开的文件中返回一行 | 文件句柄 |
filegetc() | 从打开的温江中返回一个字符 | 文件句柄 |
file() | 把文件读入一个数组之中 | 文件路径(不需要fopen) |
readfile() | 读一个文件,并输出到输出缓冲中 | 文件句柄 |
移动文件指针
函数名 | 作用 | 参数 |
ftell() | 返回指针当前所在位置 | 文件句柄 |
fseek() | 移动文件指针到制定位置 | 文件句柄,偏移量(默认从头开始,SEEK_CUR从当前位置) |
rewind() | 移动文件指针到文件开头 | 文件句柄 |
五、文件锁定机制
flock(handle,opreation[,wouldblock]),锁定文件,第一个参数为已经打开的文件句柄,第二个参数为锁定类型,其值如下:
LOCK_SH 共享锁定,用于读
LOCK_EX 独占锁定,用于写
LOCK_UN 释放锁定,用于释放以上两种锁定
LOCK_NB 附加锁定,加上附加锁时不会被阻塞而是返回false(如flock('file.txt',LOCK_EX+LOCK_NB))
锁定操作可以被fclose释放(php5.3后不会)。
第三个参数用于指明是否被锁定。