PHP - 文件和I/O
本章将解释以下与文件相关的功能 -
- 打开文件
- 读取文件
- 写入文件
- 关闭文件
打开和关闭文件
PHP fopen() 函数用于打开文件。它需要两个参数,首先说明文件名,然后说明操作模式。
文件模式可以指定为此表中的六个选项之一。
模式 | 描述 |
---|---|
r | 打开文件仅供读取。将文件指针置于文件的开头。 |
r+ | 打开文件以进行读取和写入。将文件指针置于文件的开头。 |
w | 打开文件仅用于写入。将文件指针置于文件的开头。 并将文件截断为零长度。如果 files 没有存在,则它会尝试创建一个文件。 |
w+ | 打开文件仅供读取和写入。将文件指针置于文件的开头。 并将文件截断为零长度。如果 files 没有存在,则它会尝试创建一个文件。 |
a | 打开文件仅用于写入。将文件指针置于文件末尾。如果 files 不存在,则尝试创建文件。 |
a+ | 打开文件仅供读取和写入。将文件指针置于文件末尾。如果 files 不存在,则尝试创建文件。 |
如果尝试打开文件失败,则 fopen 返回值 false,否则返回一个文件指针,用于进一步读取或写入该文件。
对打开的文件进行更改后,使用 fclose() 函数关闭它很重要。fclose() 函数需要一个文件指针作为其参数,然后在闭包成功时返回 true,如果闭包失败则返回 false。
读取文件
使用 fopen() 函数打开文件后,可以使用名为 fread() 的函数读取该文件。此函数需要两个参数。这些必须是文件指针和以字节表示的文件长度。
可以使用 filesize() 函数找到文件长度,该函数将文件名作为其参数并返回以字节表示的文件大小。
所以这里是使用 PHP 读取文件所需的步骤。
- 使用 fopen() 函数打开文件。
- 使用 filesize() 函数获取文件的长度。
- 使用 fread() 函数读取文件的内容。
- 使用 fclose() 函数关闭文件。
以下示例将文本文件的内容分配给变量,然后在网页上显示这些内容。
<html>
<head>
<title>Reading a file using PHP</title>
</head>
<body>
<?php
$filename = "tmp.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() 函数写入新文件或将文本附加到现有文件。此函数需要两个参数,用于指定文件指针和要写入的数据字符串。(可选)可以包含第三个 integer 参数来指定要写入的数据的长度。如果包含第三个参数,则写入将在达到指定长度后停止。
例以下示例创建一个新的文本文件,然后在其中写入一个简短的文本标题。关闭此文件后,使用 file_exist() 函数确认其存在,该函数将文件名作为参数
<?php
$filename = "/home/user/guest/newfile.txt";
$file = fopen( $filename, "w" );
if( $file == false ) {
echo ( "Error in opening new file" );
exit();
}
fwrite( $file, "This is a simple test\n" );
fclose( $file );
?>
<html>
<head>
<title>Writing a file using PHP</title>
</head>
<body>
<?php
$filename = "newfile.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 ( "$filetext" );
echo("file name: $filename");
?>
</body>
</html>
它将产生以下结果 -
我们已经在 PHP 文件系统功能一章中介绍了所有与文件输入和输出相关的功能。