(PHP 4, PHP 5, PHP 7, PHP 8)
file — 把整个文件读入一个数组中
filename文件的路径。
如已启用fopen 包装器,在此函数中, URL 可作为文件名。关于如何指定文件名详见 fopen()。各种 wapper 的不同功能请参见 支持的协议和封装协议,注意其用法及其可提供的预定义变量。
flags
可选参数 flags 可以是以下一个或多个常量:
FILE_USE_INCLUDE_PATH
在 include_path 中查找文件。
FILE_IGNORE_NEW_LINES
省略数组中每个元素末尾的换行符。
FILE_SKIP_EMPTY_LINES
跳过空行。
FILE_NO_DEFAULT_CONTEXT
不使用默认的上下文。
context
返回数组形式的文件内容。数组的每个元素对应于文件中的一行(结尾会附加换行符)。
失败时,file() 返回 false。
注意:
除非使用了
FILE_IGNORE_NEW_LINES,否则结果数组中的每一行都将包含行尾。
注意:
在 PHP 8.1.0 之前, 可以启用 auto_detect_line_endings 运行时配置选项,帮助 PHP 正确识别读取 Macintosh 系统创建的文件时的行结束符。 此选项自 PHP 8.1.0 起弃用。如有必要,请改为手动处理
"\r"换行符。
| 版本 | 说明 |
|---|---|
| 8.3.0 |
flags 包含任意无效值会抛出 ValueError。
|
示例 #1 file() 示例
<?php
// 将一个文件读入数组。本例中通过 HTTP 从 URL 中取得 HTML 源文件。
$lines = file('http://www.example.com/');
// 在数组中循环,显示 HTML 的源文件并加上行号。
foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// 使用可选的 flags 参数
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>使用 SSL 时,Microsoft IIS
会违反协议不发送 close_notify 标记就关闭连接。PHP 会在到达数据尾端时报告“SSL: Fatal Protocol Error”。
要解决此问题,error_reporting 应设定为降低级别至不包含警告。PHP
4.3.7 及更高版本可以在使用 https:// 包装器打开流时检测出有问题的 IIS 服务器软件 并抑制警告。在使用
fsockopen() 创建 ssl:// 套接字时,开发者需检测并抑制此警告。