fopen 打开文件或者url
resource fopen(string $filename,string $mode)打开失败返回false
mode参数指定了所要求到该流的访问类型列表:
mode |
说明 |
‘r’ |
只读方式打开,将文件指针指向文件头 |
‘r+’ |
读写方式打开,将文件指针指向文件头 |
‘w’ |
写入方式打开,将文件指针指向文件头并将文件大小截为零,如果文件不存在尝试创建文件 |
‘w+’ |
读写方式打开,将文件指针指向文件头并将文件大小截为零,如果文件不存在则尝试创建文件 |
‘a’ |
写入方式打开,将文件指针指向文件末尾,如果文件不存在则尝试创建文件 |
‘a+’ |
读写方式打开,将文件指针指向文件末尾,如果文件不存在则尝试创建文件 |
‘x’ |
创建并以写入方式打开,将文件指针指向文件头,如果文件已存在,则fopen()调用失败并返回false,并生成一条E_WARNING级别的错误信息,如果文件不存在在尝试创建文件,这和底层的open(2)系统调用O_EXCL|C_CREAT标记是等价的,注意:仅能用于本地文件 |
‘x+’ |
创建并以读写方式打开,将文件指针指向文件头,如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建文件, 注意:仅能用于本地文件 |
fread() 读取文件(可安全用于二进制文件)
string fread(int $handle,int $lenght) 从文件指针handle读取最多length个字节。该函数在读取完最多length个字节数,或到达EOF的时候,或(对于网络流)当一个包可用时,或(打开用户空间流之后)已读取8192个字节就会停止读取文件。返回所读取的字符串,如果出错返回FALSE
file_get_contents 将整个文件读入一个字符串
string file_get_contents(string $filenamg) 和file()一样,除了file_get_contents()把文件读入一个字符串,将参数offset所指定的位置开始读取长度maxlen内容,如果失败,返回false,
file_get_contents()函数是用来将文件的内容读入到一个字符串中的首选方法,如果操作系统支持还会使用内存映射技术来增强性能
file() 把整个文件读入一个数组中
array file(sting $filename) 和file_get_contents 一样,只除了file()将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内,如果失败flie()返回FALSEL
如果也想在inclde_path()中搜寻文件的话,可以将可选参数use_include_path为1;
fgets() 从文件指针中读取一行
string fgets(int $handle) 从handle指向的文件中读取一行并返回长度最多为length-1字节的字符串,碰到换行符(包括在返回值中)、EOF或者已经读取了length-1字节后停止(看先碰到那一种情况),如果没有指定length,则默认为1k, 出错返回false
文件指针必须是有效的,必须指向由fopen()或fsockopen()成功打开文件(并还未关闭)
fclose() 关闭一个已打开的文件指针
bool fclose(resource) 将handle指向的文件关闭 成功返回true 或者失败时返回FALSE
fwrite() 写入文件(可安全用于二进制文件)等同于fputs()
int fwrite(resource $handle,string $string) fwrite()把string的内容写入文件指针handle处,如果指定了length,当写入length个字节或者写完了string以后,写入就会停止,视为先碰到哪种情况
fwrite()返回写入的字符数,出现错误时则返回FALSE.
文件目录
file_exists 检查文件或目录是否存在
bool file_exists(string $filename)如果由filename指定的文件或目录存在则返回true,否则返回FALSE
is_dir 判断给定文件是否是一个目录
bool is_dir(string $filename) 如果文件名存在并且为目录则返回TRUE,如果filenam是相对经,则按照当前的目录检查其相对路径
is_readable 判断给定文件名是否可读
bool is_readable(string $filename); 如果由filename 指定的文件或目录存在并且可读则返回TRUE,记住php也许只能以运行webseverver的用户名来访问文件
is_writable() 判断给定的文件名是否可写
bool is_writable(string $filename) 如果文件存在并且可写则返回TRUE,filename参数可以是一个允许进行是否可写检查的目录名
mkdir 新建目录
bool mkdir(string $pathname )尝试创建一个由pathname指定的目录,默认的mode是0777,意味着最大可能的访问权,成功返回true,否则返回false
fliesize 取得文件大小
int filesize(string $filename) 返回文件大小的字节数,如果出错返回FALSE并生成一条E_WARNING错误
opendir() 打开目录句柄
resource opendir(sting $filename) 打开目录句柄 如果成功则返回目录句柄的resource,失败则返回false,如果path不是一个合法的目录或者因为权限限制文件系统错误而不能打开目录,opendir()返回一个FALSE并产生一个E_WARNING级别的php错误信息
rename 重命名一个文件或目录
bool rename(string $oldname,string $newname) 尝试把oldname重命名为newname 成功时返回true 失败返回false
readdir() 从目录句柄中读取条目
string readdir(resource $dir_handle) 返回目录中下一个文件的文件名,文件名以文件系统中的排序返回,成功则返回文件名,失败时返回FALSE
rmdir 删除目录
bool rmdir(string $dirname)尝试删除dirname所指定的目录,该目录必须为空,而且要有相应的权限,成功是返回true,否则失败时返回false
unlink删除文件
bool unlink ( string $filename ) 删除 filename。和 Unix C 的 unlink() 函数相似。成功时返回 TRUE, 或者在失败时返回 FALSE.
fefo 测试文件指针是否到了文件结束的位置
bool feof(resource $handle)如果指针到了EOF或者出错时则返回true,否则返回一个错误(包含socket超时),其它情况则返回FALSE.
注意:文件指针必须是有效的,必须指向由fopen()或fsockopne()成功打开的文件(并还未关闭的)
文件权限
chmod 改变文件权限
bool chmod(string $filename,int $mode)
尝试将filename所指定文件的模式改成mode所指定的
注意mode不会被自动当成八进制的值,而且也不能用字符串,要确保正确操作,需要给mode前面加上0.
mode 参数包含三个八进制数按顺序分别指定了所有者、所有者所在的组以及所有人的访问限制
chgrp改变文件所属的组
bool chgrp ( string $filename , mixed $group )
尝试将文件 filename 所属的组改成 group(通过组名或组 ID 指定)。只有超级用户可以任意修改文件的组,其它用户可能只能将文件的组改成该用户自己所在的组。成功时返回 TRUE, 或者在失败时返回 FALSE
chown改变文件的所有者
bool chown ( string $filename , mixed $user )
尝试将文件 filename 的所有者改成用户 user(由用户名或用户 ID 指定)。只有超级用户可以改变文件的所有者。成功时返回 TRUE, 或者在失败时返回 FALSE.
fileperms 取得文件的权限
int fileperms ( string $filename ) 返回文件的访问权限,如果出错则返回 FALSE。
文件的信息
stat 给出文件的信息
array stat(string $filename)
获取由filename指定文件的统计信息,如果filename是符号连接,则统计信息是关于被连接文件本身的,而不是符号连接。如果出错,stat()返回false,并且发出一条警告
返回一个数组包含文件的统计信息,该数组具有以下列出的单元,数组下标从零开始
stat() 和 fstat() 返回格式
数字下标 |
关联键名(自 PHP 4.0.6) |
说明 |
0 |
dev |
device number - 设备名 |
1 |
ino |
inode number - inode 号码 |
2 |
mode |
inode protection mode - inode 保护模式 |
3 |
nlink |
number of links - 被连接数目 |
4 |
uid |
userid of owner - 所有者的用户 id |
5 |
gid |
groupid of owner- 所有者的组 id |
6 |
rdev |
device type, if inode device * - 设备类型,如果是 inode 设备的话 |
7 |
size |
size in bytes - 文件大小的字节数 |
8 |
atime |
time of last access (unix timestamp) - 上次访问时间(Unix 时间戳) |
9 |
mtime |
time of last modification (unix timestamp) - 上次修改时间(Unix 时间戳) |
10 |
ctime |
time of last change (unix timestamp) - 上次改变时间(Unix 时间戳) |
11 |
blksize |
blocksize of filesystem IO * - 文件系统 IO 的块大小 |
12 |
blocks |
number of blocks allocated - 所占据块的数目 |
lstat给出一个文件或符号连接的信息
array lstat ( string $filename )
获取由 filename 指定的文件或符号连接的统计信息。本函数和 stat() 函数相同,只除了如果 filename 参数是符号连接的话,则该符号连接的状态被返回,而不是该符号连接所指向的文件的状态。
fstat通过已打开的文件指针取得文件信息
array fstat ( resource $handle )
获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似,除了它是作用于已打开的文件指针而不是文件名。
touth 设定文件的访问和修改时间
bool touch(string $filename, [, int $time [, int $atime ]])
尝试将由 filename 给出的文件的访问和修改时间设定为给出的时间。如果没有给出可选参数 time,则使用当前系统时间。如果给出了第三个参数 atime,则给定文件的访问时间会被设为 atime。注意访问时间总是会被修改的,不论有几个参数, 如果文件不存在,则会被创建。成功时返回 TRUE, 或者在失败时返回 FALSE.
filectime 取得文件的inode修改时间
int filectime(string $filenaem) 返回文件上次 inode 被修改的时间,如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。
filemtime取得文件修改时间
int filemtime ( string $filename ) 返回文件上次被修改的时间,出错时返回 FALSE。时间以 Unix 时间戳的方式返回,可用于 date()。