在线文档教程
PHP
文件系统 | File System

file

file

(PHP 4, PHP 5, PHP 7)

文件 - 将整个文件读取到一个数组中

描述

array file ( string $filename [, int $flags = 0 [, resource $context ]] )

将整个文件读入一个数组。

注意:您可以使用file_get_contents()以字符串形式返回文件的内容。

参数

filename

文件的路径。

提示

如果fopen包装已经启用,那么可以使用URL作为文件名。有关如何指定文件名的更多详细信息,请参阅fopen()。请参阅支持的协议和包装以获取有关各种包装具有哪些功能的信息的链接,关于它们的用法的注释以及它们可能提供的任何预定义变量的信息。

flags

可选参数flags可以是以下常量中的一个或多个:

FILE_USE_INCLUDE_PATH 在include_path中搜索文件。 FILE_IGNORE_NEW_LINES 不要在每个数组元素的末尾添加换行符 FILE_SKIP_EMPTY_LINES 跳过空行 context

使用stream_context_create()函数创建的上下文资源。

注意:使用PHP 5.0.0添加了上下文支持。有关上下文的描述,请参阅流。

返回值

返回数组中的文件。数组中的每个元素都对应于文件中的一行,并且还附加了换行符。失败时,file()返回FALSE

注意:除非FILE_IGNORE_NEW_LINES使用,否则结果数组中的每行都将包含行结尾,因此如果不想结束行,则仍然需要使用rtrim()。

注意:如果PHP在读取Macintosh计算机上创建的文件或由Macintosh计算机创建文件时未正确识别行结束符,启用auto_detect_line_endings运行时配置选项可能有助于解决问题。

错误/异常

E_WARNING如果文件不存在,则发出级别错误。

更新日志

描述
4.3.0file()变成二进制安全的

例子

Example #1 file() example

<?php // Get a file into an array.  In this example we'll go through HTTP to get // the HTML source of a URL. $lines = file('http://www.example.com/' // Loop through our array, show HTML source as HTML source; and line numbers too. foreach ($lines as $line_num => $line) {     echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n"; } // Another example, let's get a web page into a string.  See also file_get_contents(). $html = implode('', file('http://www.example.com/') // Using the optional flags parameter since PHP 5 $trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES ?>

注意

警告

使用SSL时,Microsoft IIS将通过关闭连接而不发送close_notify指示符来违反协议。当您到达数据结尾时,PHP将报告为“SSL:致命协议错误”。要解决此问题,应将error_reporting的值降低到不包含警告的级别。当您使用https://封装器打开流时,PHP可以检测到有问题的IIS服务器软件,并会取消警告。当使用fsockopen()创建一个ssl://套接字时,开发人员负责检测并抑制此警告。