PHP File() 处理和函数
⚡ 智能摘要
PHP 文件处理使用丰富的内置函数集来创建、读取、写入、复制和删除服务器上的文件。本教程将通过实际示例介绍 file_exists、fopen 及其模式、fwrite、fclose、fgets、copy、unlink 和 file_get_contents 等函数。

什么是文件?
文件只是计算机上存储信息的资源。
文件通常用于存储以下信息:
- 程序的配置设置
- 简单的数据,例如联系人姓名和电话号码。
- 图像、图片、照片及类似媒体。
PHP 文件格式支持
PHP 文件函数支持多种文件格式,包括:
- 文件.txt
- 文件.log
- 文件.自定义扩展名,例如 file.xyz
- 文件.csv
- 文件.gif、文件.jpg 和类似图像格式
文件在多种情况下都很有用:
- 与需要其他软件和技能来管理 DBMS 系统的数据库相比,它们为简单数据提供了一种永久、经济高效的数据存储解决方案。
- 你想存储一些简单的数据,例如服务器日志,以便日后检索和分析。
- 你想保存程序设置,例如 program.ini 文件。
PHP 文件函数
PHP 通过其丰富的内置函数,为处理文件提供了一种便捷的方式。
Opera系统,如 Windows 和 macOS 不区分大小写,而 Linux or Unix的 操作系统区分大小写。
采用仅使用小写字母等命名规则进行文件命名是一种良好的做法,可以确保最大的跨平台兼容性。
现在让我们来看一些最常用的PHP文件函数。
PHP file_exists() 函数
该函数用于判断文件是否存在。
- 当我们想在处理文件之前知道文件是否存在时,它就派上用场了。
- 当创建新文件并且想要确保该文件在服务器上尚不存在时,您也可以使用此功能。
file_exists 函数的语法如下。
<?php file_exists($filename); ?>
这里,
- “file_exists()” 是 PHP 函数,如果文件存在则返回 true,如果不存在则返回 false。
- “$filename”是要检查的文件的路径和名称。
下面的代码使用 file_exists 函数来确定文件 my_settings.txt 是否存在。
<?php if (file_exists('my_settings.txt')) { echo 'file found!'; } else { echo 'my_settings.txt does not exist'; } ?>
将上述代码保存到名为 file_function.php 的文件中。假设您已将文件保存在 htdocs 目录下的 phptuts 文件夹中,请打开该文件。 URL http://localhost/phptuts/file_function.php 在浏览器中,您将看到以下结果。
PHP fopen() 函数
fopen 函数用于打开文件。它的语法如下。
<?php fopen($file_name,$mode,$use_include_path,$context); ?>
这里,
- “fopen” 是 PHP 打开文件函数
- “$file_name”是要打开的文件的名称
- “$mode”表示文件应以何种模式打开。下表列出了所有模式。
| 时尚 | 描述 |
|---|---|
| r | • 从头开始读取文件。 • 如果文件不存在,则返回 false。 • 只读 |
| r+ | • 从头开始读取文件 • 如果文件不存在,则返回 false。 • 读和写 |
| w | • 在开头写入文件 • 将文件截断为零长度 • 如果文件不存在,请尝试创建它。 • 只写 |
| w+ | • 从开头写入文件,将文件截断为零长度 • 如果文件不存在,请尝试创建它。 • 读和写 |
| a | • 附加到文件末尾 • 如果文件不存在,请尝试创建它。 • 只写 |
| a+ | • 附加到文件末尾 • 如果文件不存在,请尝试创建它。 • 读和写 |
- “$use_include_path”为可选参数,默认值为false。如果设置为true,则该函数也会在包含路径中搜索。
- “$context”是可选的,可用于指定上下文支持。
PHP fwrite() 函数
fwrite 函数用于向文件写入数据。
它具有以下语法。
<?php fwrite($handle, $string, $length); ?>
这里,
- “fwrite” 是用于写入文件的 PHP 函数
- “$handle” 是文件指针资源
- “$string”是要写入文件的数据。
- “$length”是可选参数,可用于指定最大文件长度。
PHP fclose() 函数
fclose() 函数用于关闭 PHP 中已打开的文件。
它具有以下语法。
<?php fclose($handle); ?>
这里,
- “fclose” 是 PHP功能 关闭打开的文件
- “$handle” 是文件指针资源。
现在让我们来看一个创建 my_settings.txt 文件的例子。我们将使用 fopen、fwrite 和 fclose 函数。
下面的代码“create_my_settings_file.php”实现了上述示例。
| 打开文件 |
<?php $fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); ?> |
| 关闭文件 |
<?php fclose($fh); ?> |
| 创建文件 |
<?php $fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); $text = <<<_END localhost;root;pwd1234;my_database _END; fwrite($fh, $text) or die("Could not write to file"); fclose($fh); echo "File 1 written successfully"; ?> |
测试代码
打开 URL http://localhost/phptuts/create_my_settings.php 您的浏览器。
您将看到以下页面。
注意:如果您的磁盘已满或者您没有权限写入文件,您将收到错误消息。
切换回 URL http://localhost/phptuts/file_function.php你得到了什么样的结果?
PHP fgets() 函数
fgets 函数用于逐行读取 PHP 文件。它的基本语法如下。
<?php fgets($handle); ?>
这里,
- “fgets”是PHP中用于读取文件行的函数。
- “$handle” 是文件指针资源。
现在让我们来看一个使用 fopen 和 fgets 函数读取 my_settings.txt 文件的示例。
read_my_settings.php 下面的代码实现了上面的例子。
<?php $fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it"); $line = fgets($fh); echo $line; fclose($fh); ?>
这里,
- “fopen”函数返回文件路径中指定文件的指针
- 如果发生错误,则会调用“die()”函数。它会显示一条消息并终止脚本的执行。
PHP copy() 函数
PHP 的 copy 函数用于复制文件。它的基本语法如下。
<?php copy($file,$copied_file); ?>
这里,
- “$file”指定要复制的文件的文件路径和名称。
- “$copied_file”指定复制文件的路径和名称
下面的代码说明了实现过程。
<?php copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file"); echo "File successfully copied to 2"; ?>
删除文件
unlink 函数用于删除文件。以下代码展示了其实现方式。
<?php if (!unlink('my_settings_backup.txt')) { echo "Could not delete file"; } else { echo "File 1 successfully deleted"; } ?>
PHP file_get_contents() 函数
file_get_contents函数用于读取整个文件内容。
file_get_contents 和 fgets 的区别在于 file_get_contents 将文件数据作为字符串返回,而 fgets 逐行读取文件。
下面的代码说明了实现过程。
<?php echo "<pre>"; // Enables display of line feeds echo file_get_contents("my_settings.txt"); echo "</pre>"; // Terminates pre tag ?>
PHP 文件函数快速参考
下表总结了本教程中介绍的文件函数。
| 功能 | 描述 |
|---|---|
| 文件已存在 | 用于判断文件是否存在 |
| 打开 | 用于打开文件。返回指向已打开文件的指针 |
| 写 | 用于写入文件 |
| 关闭 | 用于关闭打开的文件 |
| 获取 | 用于逐行读取文件 |
| 复制 | 用于复制现有文件 |
| 取消链接 | 用于删除现有文件 |
| 的file_get_contents | 用于以字符串形式返回文件内容 |


