本章将解释以下与文件相关的函数功能 -
- 打开文件
- 读取文件
- 写入文件
- 关闭文件
打开和关闭文件
PHP的fopen()
函数用来打开一个文件。 它需要两个参数,第一个是文件名,然后是在哪个模式下操作。
文件模式可以被指定为操作模式的六个选项之一。
编号 | 模式 | 说明 |
---|---|---|
1 | r |
打开文件为只读。将文件指针放在文件的开头。 |
2 | r+ |
打开文件进行读写。将文件指针放在文件的开头。 |
3 | w |
打开文件只写。将文件指针放在文件的开头。并截断文件为零长度。 如果文件不存在,则会尝试创建文件。 |
4 | w+ |
仅打开文件以进行读取和写入。将文件指针放置在文件的开头。并截断文件为零长度。 如果文件不存在,则会尝试创建文件。 |
5 | a |
打开文件以进行写入。将文件指针放在文件末尾。 如果文件不存在,则会尝试创建文件。 |
6 | a+ |
打开文件只能读取和写入。将文件指针放在文件末尾。如果文件不存在,则会尝试创建文件。 |
如果尝试打开文件失败,则fopen
返回false
值,否则返回文件指针,用于进一步读取或写入该文件。
在对打开的文件进行更改之后,使用fclose()
函数关闭文件是很重要的。fclose()
函数需要一个文件指针作为参数,在关闭成功时返回true
,否则返回false
。
读取文件
使用fopen()
函数打开文件,就可以使用名为fread()
的函数来读取文件。 这个函数需要两个参数。 这些必须是文件指针和以字节表示的文件长度。
文件长度可以通过使用文件名作为参数的filesize()
函数计算得到,并返回以字节表示的文件大小。
下面是用PHP读取文件所需的步骤。
- 使用
fopen()
函数打开一个文件。 - 使用
filesize()
函数获取文件的长度。 - 使用
fread()
函数读取文件的内容。 - 使用
fclose()
函数关闭文件。
以下示例将文本文件的内容分配给变量,然后在网页上显示文件的内容。
<html>
<body>
<meta charset="utf-8" />
<title>读取文件示例</title>
<?php
$filename = "test.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "<pre>$filetext</pre>" );
?>
</body>
</html>
它会产生以下结果 -
写入文件
可以使用PHP的fwrite()
函数写入新文件或将文本附加到现有文件。这个函数需要两个参数指定一个文件指针和要写入的数据字符串。 可选地,可以包含第三个整数参数来指定要写入的数据的长度。如果包含第三个参数,则在达到指定的长度后写入将停止。
以下示例创建一个新的文本文件,然后在其中写入一个简短的文本标题。 在关闭这个文件之后,使用file_exist()
函数确认它的存在,file_exist()
函数将文件名作为参数。
<?php
$filename = "writefile.txt";
$file = fopen( $filename, "w" );
if( $file == false ) {
echo ( "Error in opening new file" );
exit();
}
fwrite( $file, "This is a simple test
" );
fclose( $file );
?>
<html>
<head>
<meta charset="utf-8" />
<title>写入文件示例</title>
</head>
<body>
<?php
$filename = "writefile.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes. <br/>" );
echo ( "$filetext <br/>" );
echo("file name: $filename");
?>
</body>
</html>
执行上面示例代码,得到以下结果 -
更多有关PHP文件系统函数请参考以下链接:https://www.tutorialspoint.com/php/php_file_system_functions.htm