file

把整个文件读入一个数组中 (PHP 3, PHP 4, PHP 5)
array file ( string filename [, int use_include_path [, resource context]] )

说明

file_get_contents() 一样,只除了 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败 file() 返回 FALSE

如果也想在 include_path 中搜寻文件的话,可以将可选参数 use_include_path 设为 "1"。

<?php
// &#23558;&#19968;&#20010;&#25991;&#20214;&#35835;&#20837;&#25968;&#32452;&#12290;&#26412;&#20363;&#20013;&#36890;&#36807; HTTP &#20174; URL &#20013;&#21462;&#24471; HTML &#28304;&#25991;&#20214;&#12290;
$lines = file('http://www.example.com/');
// &#22312;&#25968;&#32452;&#20013;&#24490;&#29615;&#65292;&#26174;&#31034; HTML &#30340;&#28304;&#25991;&#20214;&#24182;&#21152;&#19978;&#34892;&#21495;&#12290;
foreach ($lines as $line_num => $line) {
   echo
"Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// &#21478;&#19968;&#20010;&#20363;&#23376;&#23558; web &#39029;&#38754;&#35835;&#20837;&#23383;&#31526;&#20018;&#12290;&#21442;&#35265; file_get_contents()&#12290;
$html = implode('', file ('http://www.example.com/'));
?>
提示:

如果“fopen wrappers”已经被激活,则在本函数中可以把 URL 作为文件名来使用。请参阅 fopen() 函数来获取怎样指定文件名的详细信息以及支持 URL 封装协议的列表:附录 M, 支持的协议/封装协议列表

注意:

返回的数组中每一行都包括了行结束符,因此如果不需要行结束符时还需要使用 rtrim() 函数。

注意:

如果碰到 PHP 在读取文件时不能识别 Macintosh 文件的行结束符,可以激活 auto_detect_line_endings 运行时配置选项。

注意:

从 PHP 4.3.0 开始可以用 file_get_contents() 来将文件读入到一个字符串返回。

从 PHP 4.3.0 开始 file() 可以安全用于二进制文件。

注意:

对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Streams

警告:

当使用 SSL 时,Microsoft IIS 将违反协议不发送 close_notify 标记就关闭连接。PHP 将在到达数据尾端时报告 "SSL: Fatal Protocol Error"。要绕过此问题,应将 error_reporting 级别降低为不包括警告。PHP 4.3.7 及更高版本可以在当使用 https:// 封装协议打开流的时候检测出有此问题的 IIS 服务器并抑制警告。如果使用 fsockopen() 来创建一个 ssl:// 套接字,则需要自己检测并抑制警告信息。

参见 readfile()fopen()fsockopen()popen()file_get_contents()include()