18842388900

网站建设 APP开发 小程序

Article/文章

记录成长点滴 分享您我感悟

您当前位置>首页 > 知识 > 网站建设

使用PHP

读取文件的正确方法 Roger McCoy是一名开发人员,他使用各种编程语言,包括C,Java,JavaScript,Perl,PHP和Microsoft Visual Basic。他在PHP应用程序开发方面有五年的经验,但他可能更熟悉呼叫中心行业的技术人员。

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

处理像PHP这样的现代编程语言的乐趣之一就是有很多选择。 PHP可以很容易地赢得Perl的座右铭“有多种方法可以做到”(不仅仅是一种方法),特别是在文件处理方面。但是,许多可用选项中的哪一个是完成工作的最佳工具?当然,实际答案取决于解析文件的目标,因此值得花时间探索所有选项。

传统的 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);

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

1.打开文件。 $ file_handle存储对文件本身的引用。 2.检查是否已到达文件末尾。 3.继续读取文件,直到它到达文件末尾,并在读取时打印每一行。 4.关闭文件。

考虑到这些步骤,我将回顾这里使用的每个文件函数。

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的连接。执行此功能后,您将无法再从文件或套接字读取任何信息。

fgets

回到清单1中的几行,您将到达文件处理的核心:实际读取文件。 fgets函数是处理第一个例子的首选武器。它从文件中获取一行数据并将其作为字符串返回。之后,您可以打印或以其他方式处理数据。清单1中的示例将详细打印整个文件。

如果决定限制处理块的大小,可以向fgets添加参数以限制最大行长度。例如,使用以下代码将行长度限制为80个字符:

$ string=fgets($ file_handle,81);

回想一下C中“\ 0”字符串的结尾,并将长度设置为大于实际值的数字1。因此,如果需要80个字符,则上面的示例使用81.您应该养成以下习惯:只要对此函数使用行限制,请添加此额外字符。

fread

fgets函数是唯一可用于多个文件读取函数的函数。这是一个更常见的功能,因为逐行解析通常是有意义的。实际上,其他几个功能可以提供类似的功能。但是,您并不总是需要逐行解析。

然后你需要使用fread。 fread函数与fgets的处理目标略有不同:它倾向于从二进制文件(即主要不是人类可读文本的文件)中读取信息。由于“行”的概念独立于二进制文件(逻辑数据结构通常不以新行终止),因此必须指定需要读取的字节数。

网站建设,小程序开发,小程序制作,微信小程序开发,公众号开发,微信公众号开发,网页设计,网站优化,网站排名,网站设计,微信小程序设计,小程序定制,微信小程序定制

相关案例查看更多