快速提示:如何使用 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()
可以在官方文档中找到。