PHP文件操作函数:如何轻松读写文件
1. fopen()函数
fopen()函数是PHP的文件打开函数,它的作用是打开文件并返回一个文件指针,可以用于读写文件信息。语法如下:
resource fopen ( string $filename , string $mode [, bool $use_include_path = FALSE [, resource $context ]] )
参数:
- filename:必需。规定要打开的文件。如果文件不存在,则会创建一个新文件。注意:在Windows操作系统下,斜杆(/)要替换成反斜杆(\\)。
- mode:必需。规定打开文件的模式。有以下几种模式:
模式 | 说明
--- | ---
'r' | 以只读方式打开文件。文件指针在文件的开头。
'w' | 以写入方式打开文件。将文件大小截为零(清空文件)。如果文件不存在,则创建一个新文件。
'a' | 以写入方式打开文件。文件指针在文件末尾。如果文件不存在,则创建一个新文件。
'x' | 创建并以写入方式打开文件。如果文件已存在,则返回 false 并产生一个 E_WARNING 级别的错误信息。
'r+' | 以读写方式打开文件。文件指针在文件开头。
'w+' | 以读写方式打开文件。将文件大小截为零(清空文件)。如果文件不存在,则创建一个新文件。
'a+' | 以读写方式打开文件。文件指针在文件末尾。如果文件不存在,则创建一个新文件。
'x+' | 创建并以读写方式打开文件。如果文件已存在,则返回 false 并产生一个 E_WARNING 级别的错误信息。
- use_include_path:可选。在 PHP 5 中,默认是 FALSE。不要查找 PHP 的 include_path 目录。
- context:可选。为流指定上下文选项。Context 是可以修改流行为的一套选项。fopen() 函数也许就无法在 URL 上下文中使用,这取决于 URL 风格。如果需要在 URL 上下文中使用一个特殊的文件,请使用 CURL 代替。
示例:
//以只读方式打开文件
$myfile = fopen("file.txt", "r") or die("Unable to open file!");
//读取文件内容
echo fread($myfile,filesize("file.txt"));
//关闭文件
fclose($myfile);
2. fread()函数
fread()函数用于读取打开的文件的内容。语法如下:
string fread ( resource $handle , int $length )
参数:
- handle:必须。由 fopen() 函数返回的文件指针。
- length:必须。规定要读取的字节数。EOF(已到达文件末尾)标记也被视为长度。
示例:
//以只读方式打开文件
$myfile = fopen("file.txt", "r") or die("Unable to open file!");
//读取文件内容
echo fread($myfile,filesize("file.txt"));
//关闭文件
fclose($myfile);
3. fwrite()函数
fwrite()函数用于将数据写入打开的文件。语法如下:
int fwrite ( resource $handle , string $string [, int $length ] )
参数:
- handle:必须。由 fopen() 函数返回的文件指针。
- string:必须。规定要写入文件的字符串。
- length:可选。规定要写入的最大字节数。如果未指定,则写入所有字符串。
示例:
//以只写方式打开文件
$myfile = fopen("file.txt", "w") or die("Unable to open file!");
//写入内容
$txt = "Hello World
";
fwrite($myfile, $txt);
//关闭文件
fclose($myfile);
4. fgets()函数
fgets()函数用于从打开的文件读取一行。语法如下:
string fgets ( resource $handle [, int $length ] )
参数:
- handle:必须。由 fopen() 函数返回的文件指针。
- length:可选。规定要读取的最大字节数。
示例:
//以只读方式打开文件
$myfile = fopen("file.txt", "r") or die("Unable to open file!");
//逐行读取文件内容
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
//关闭文件
fclose($myfile);
5. feof()函数
feof()函数用于检查是否已到达文件末尾(EOF)。语法如下:
bool feof ( resource $handle )
参数:
- handle:必须。由 fopen() 函数返回的文件指针。
示例:
//以只读方式打开文件
$myfile = fopen("file.txt", "r") or die("Unable to open file!");
//逐行读取文件内容
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
//关闭文件
fclose($myfile);
6. fgetc()函数
fgetc()函数用于从打开的文件读取单个字符。语法如下:
string fgetc ( resource $handle )
参数:
- handle:必须。由 fopen() 函数返回的文件指针。
示例:
//以只读方式打开文件
$myfile = fopen("file.txt", "r") or die("Unable to open file!");
//逐个字符读取文件内容
while(!feof($myfile)) {
echo fgetc($myfile);
}
//关闭文件
fclose($myfile);
7. file_put_contents()函数
file_put_contents()函数用于将字符串写入文件中。语法如下:
int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )
参数:
- filename:必须。规定要写入数据的文件。
- data:必须。规定要写入文件的字符串。可以是字符串、数组或其他允许在文件中写入的类型。
- flags:可选。规定如何处理写入操作,比如是否二进制写入等。
- context:可选。指定文件操作的上下文,比如文件访问权限等。
示例:
//将字符串写入文件中
$txt = "Hello World";
file_put_contents("file.txt", $txt);
8. file_get_contents()函数
file_get_contents()函数用于读取文件内容到一个字符串中。语法如下:
string file_get_contents ( string $filename [, bool $use_include_path = FALSE [, resource $context [, int $offset = 0 [, int $maxlen ]]]] )
参数:
- filename:必须。规定要读取数据的文件。
- use_include_path:可选。搜索 include_path 同样的目录。
- context:可选。规定文件句柄的上下文。应该是资源流上下文。
- offset:可选。规定文件中开始读取的位置。
- maxlen:可选。规定要读取的字节数。
示例:
//将文件内容读取到字符串中
echo file_get_contents("file.txt");
总结
以上为常用的PHP文件操作函数,使用fopen()函数打开文件,使用fread()函数读取文件内容,使用fwrite()函数写入文件内容,使用fgets()函数逐行读取文件,使用feof()函数检查是否读取到文件末尾,使用fgetc()函数逐个字符读取文件内容,使用file_put_contents()函数将字符串写入文件中,使用file_get_contents()函数读取文件内容到字符串中。使用这些文件操作函数可以方便地读写文件。
