欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP之文件处理

程序员文章站 2024-04-06 08:16:01
...
1、打开文件
resource fopen( string filename, string mode [, int use_include_path [, resource zcontext]])

//文件名的路径分隔符用“/”

//mode:文件可能通过下列模式来打开:

模式 描述
r 只读。在文件的开头开始。
r+ 读/写。在文件的开头开始。
w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a 追加。打开并向文件文件的末端进行写操作,如果文件不存在,则创建新文件。
a+ 读/追加。通过向文件末端写内容,来保持文件内容。
x 只写。创建新文件。如果文件以存在,则返回 FALSE。

x+

读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

注释:如果 fopen() 无法打开指定文件,则返回 0 (false)。

2、读取文件内容

(1)读取一个字符:fgetc()从文件指针指定的位置读取一个字符。

string fgetc( resource handle)
//返回一个字符,遇到EOF则返回FALSE。

(2)读取一行字符:fgets()从文件指针中读取一行数据。文件指针必须是有效的,并且必须指向一个由fopen()或fsockopen()成功打开的文件。

string fgets( int handle [, int length])

//length:要读取的数据长度。

fgets()函数能够从handle指定文件中读取一行并返回长度最大为length-1个字节的字符串。在遇到换行符、EOF或者读取到了length-1个字节后停止,如果忽略length参数,那么将读取到行结束。注释:在调用该函数之后,文件指针会移动到下一行。

fgetss()函数从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。

(3)读取任意长度的字符串:fread()读取打开的文件。还可以读取二进制文件。

string fread( int handle, int length)

//length指定要读取的字节数。此函数在读取到length个字节或到达EOF时停止执行。

filesize(handle)获取文件数据的长度。

(4)读取整个文件:readfile()、file()和file_get_contents()


int readfile( string filename [, bool use_include_path [, resource context]])

//readfile()读取一个文件并写入到输出缓冲,成功返回读取的字节数,失败返回FALSE。


array file( string filename [, int use_include_path [, resource context]])

//file()将整个文件的内容读入到一个数组中。成功返回数组,数组中的每个元素都是文件中对应的一行,包括换行符在内;失败返回FALSE。

string file_get_contents( string filename [, bool use_include_path [, resource context [,int offset [, int maxlen]]]])

//file_get_contents()将文件内容读入到一个字符串。如果有offset和maxlen参数,将在参数offset所指定的位置开始读取长度为maxlen的内容。失败则返回FALSE。
应用readfile()、file()、file_get_contents()函数,不需要打开/关闭文件,不需要输出语句,直接应用函数即可。

但是在读取一个字符、一行字符和任意长度的字符串时必须应用fopen()函数打开文件后才能进行读取,在读取完成后还要应用fclose()函数关闭文件。

3、向文件中写入数据

(1)fwrite(),别名fputs()

int fwrite( resource handle, string string [,int length])

fwrite()函数把string的内容写入文件指针handle处。成功返回写入的字符数,失败FALSE。

在应用fwrite()函数时,如果给出length参数,那么magic_quotes_runtime(php.ini文件中的选项)配置选项将被忽略,而string中的斜线将不会被抽去。如果在区分二进制文件和文本文件的系统上(如Windows)应用这个函数,打开文件时,fopen()函数的mode参数要加上'b'。

(2)file_put_contents():无需用fopen()和fclose()

将一个字符串data写入文件中,成功返回写入的字节数,失败返回FALSE。

int file_put_contents( string filename, string data [, int flags [, resource context]])
本函数可安全用于二进制对象。如果“fopen wrappers”已经被激活,则在本函数中可以把URL作为文件名来使用。

4、关闭文件指针

bool fclose( resource handle)



以上就介绍了PHP之文件处理,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。