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

阅读更多

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注