php-读取文件正确方法

         php读取文件大家应该都会。但是如何正确的而有效率的读取了。笔者就和大家一起来讨论这个问题

首先:

     了解如何使用 PHP 的各种文件函数。查看诸如 fopen、fclose 和 feof 之类的基本文件函数;了解诸如 fgets、fgetss 和 fscanf 之类的读取函数。并且发现用一两行代码处理整个文件的函数。

  让我们算一算有多少种方法

  处理诸如 PHP 之类的现代编程语言的乐趣之一就是有大量的选项可用。PHP 可以轻松地赢得 Perl 的座右铭“There's more than one way to do it”(并非只有一种方法可做这件事),尤其是在文件处理上。但是在这么多可用的选项中,哪一种是完成作业的最佳工具?当然,实际答案取决于解析文件的目标,因此值得花时间探究所有选项。

  传统的 fopen 方法

  fopen 方法可能是以前的 C 和 C++ 程序员最熟悉的,因为如果您使用过这些语言,那么它们或多或少都是您已掌握多年的工具。对于这些方法中的任何一种,通过使用 fopen(用于读取数据的函数)的标准方法打开文件,然后使用 fclose 关闭文件,如清单 1 所示。

  清单 1. 用 fgets 打开并读取文件

$file_handle = fopen("myfile", "r");
while (!feof($file_handle)) {
  $line = fgets($file_handle);
  echo $line;
}
fclose($file_handle);

  虽然大多数具有多年编程经验的程序员都熟悉这些函数,但是让我对这些函数进行分解。有效地执行以下步骤:

  • 打开文件。$file_handle 存储了一个对文件本身的引用。
  • 检查您是否已到达文件的末尾。
  • 继续读取文件,直至到达文件末尾,边读取边打印每行。
  • 关闭文件。

      记住这些步骤,我将回顾在这里使用的每个文件函数。

      fopen

      fopen 函数将创建与文件的连接。我之所以说“创建连接”,是因为除了打开文件之外,fopen 还可以打开一个 URL:

    $fh = fopen("http://127.0.0.1/", "r");

      这行代码将创建一个与以上页面的连接,并允许您开始像读取一个本地文件一样读取它。

      注: fopen 中使用的 "r" 将指示文件以只读方式打开。由于将数据写入文件不在本文的讨论范围内,因此我将不列出所有其他选项。但是,如果是从二进制文件读取以获得跨平台兼容性,则应当将 "r" 更改为 "rb"。稍后您将看到这样的示例。

      feof

      feof 命令将检测您是否已经读到文件的末尾并返回 True 或 False。清单 1 中的循环将继续执行,直至您达到文件“myfile”的末尾。注:如果读取的是 URL 并且套接字由于不再有任何数据可以读取而超时,则 feof 也将返回 False。

      fclose

      向前跳至清单 1 的末尾,fclose 将实现与 fopen 相反的功能:它将关闭指向文件或 URL 的连接。执行此函数后,您将不再能够从文件或套接字中读取任何信息。