PHP文件处理函数
13.1.1 打开/关闭文件
1,打开文件:对文件进行操作时首先要打开文件,这是进行数据存取的第一步。在 PHP 中使用 fopen()函数打开文件,语法如下:
resource fopen(string filename,string mode[,bool use_include_path]);参数 filename 是要打开的包含路径的文件名,参数 mode 是打开文件的方式,常用到的有只读(r,r+),只写(w,w+)。use_include_path 是可选的,该参数在配置文件 php.ini 中指定一个路径,如果希望服务器在这个路径下打开所指定的文件,可以设置为 1 或 true。
2,关闭文件:bool fclose(resource handle);
13.1.2 读写文件
1,从文件中读取数据
1) 读取整个文件:readfile()、file()、file_get_contents()
(1) readfile():使用 readfile()函数,不需要打开/关闭文件,不需要 echo/print等输出语句,直接写出文件路径即可。语法:int readfile(string filename)。
(2) file():file()函数也可以读取整个文件的内容,只是 file() 函数将文件内容按行存放到数组中,包括换行符在内。语法:array file(string filename)。
(3) file_get_contents():该函数将文件内容(filename)读入一个字符串。如果有 offset 和 maxlen 参数,将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。语法:string file_get_contents(string filename[,int offset[,int maxlen]])。
2) 读取一行数据:fgets()和fgetss()
(1) fgets():fgets()函数用于一次读取一行数据。语法:string fgets(int handle[,int length])。
(2) fgetss():fgetss()函数是 fgetss() 函数的变体,用于读取一行数据,同时,fgetss()函数会过滤掉被读取内容中的 html 和 php 标记。语法:string fgetss(resource handle[,int length[,string allowable_tags]])。
3) fgetc():读取一个字符,语法:string fgetc(resource handle)。
4) fread():读取任意长度的字串,语法:string fread(int handle,int length)。
2,将数据写入文件
(1)fwrite():语法:int fwrite(resource handle,string string[,int length]),该函数把内容 string 写入文件指针 handle 处,如果指定了长度 length,则写入 length 个字节后停止。如果文件内容长度小于 length,则会输出全部文件内容。
13.1.3 操作文件
bool copy(string path1,string path2):将文件从 path1 复制到 path2。如果成功,返回true,失败则返回 false。
bool rename(string filename1,string filename2):把 name1 重命名为 name2。
book unlink(string filename):删除文件,成功返回 true,失败则返回 false。
int fileatime(string filename):返回文件最后一次被访问的时间,时间以 UNIX 时间戳的方式返回。
int filesize(string filename):取得文件 filename 的大小(bytes)。
说明:在读写文件时,除了 file()、readfile()等少数几个函数外,其他操作必须要先使用 fopen()函数打开文件,最后用 fclose()函数关闭文件。文件的信息函数则都不需要打开文件,只要文件存在即可。