如何使用PHP读取本地文件,在使用 PHP 应用程序时,我们经常需要打开本地文件并从中读取数据或向其中写入数据。在本文中,我们将简要回顾可用于执行此操作的工具。
PHP 为我们提供了三个用于操作本地文件的本机函数:file()
、file_get_contents()
和fopen()
。围绕这些函数编写了整个库,但当我们需要使用 PHP 快速操作文件时,它们仍然是首选。
我们将首先查看这些函数的作用,然后查看它们如何工作的示例。
file() 和 file_get_contents()
file()
并file_get_contents()
以大致相同的方式工作。他们都阅读了整个文件。但是,file()
将文件读入数组,同时file_get_contents()
将文件读入字符串。这两个函数都是二进制安全的,这意味着它们可以用于任何类型的内容。
使用 时要格外小心file()
,因为它返回的数组将由换行符分隔,但每个元素仍将附加终止换行符。
打开()
该fopen()
功能以完全不同的方式工作。它将打开一个文件描述符,该文件描述符用作读取或写入文件的流。
PHP 手册是这样解释的:
在其最简单的形式中,流是展示可流式行为的资源对象。也就是说,它可以以线性方式读取或写入,并且可以
fseek()
到达流中的任意位置。
简单地说,调用fopen()
只会打开一个流。
一旦我们打开了流并获得了文件的句柄,就可以使用 和 等其他函数来操作文件fread()
。fwrite()
完成后,我们可以使用关闭流fclose()
。
例子
看看下面的例子:
<?php $filepath = "/usr/local/sitepoint.txt"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle);
上面的函数可以让您更好地控制文件,但它们的级别比file()
或file_get_contents()
函数要低得多,后者更适合使用,如PHP 文档中所述:
file_get_contents()
是将文件内容读入字符串的首选方式。如果您的操作系统支持,它将使用内存交换技术来提高性能。
file_get_contents()
使用起来相当简单:
<?php $file_contents = file_get_contents('./file.txt');
这会将 的内容读file.txt
入$file_contents
.
相反,如果我们只需要文件的特定部分,我们可以这样做:
<?php $file_contents = file_get_contents('./file.txt', FALSE, NULL, 20, 14);
这将读取 14 个字符,从 的第 20 个字符开始file.txt
。有关所有参数的更多信息,请file_get_contents()
参见官方文档。