file

(PHP 4, PHP 5, PHP 7, PHP 8)

file把整個(gè)文件讀入一個(gè)數(shù)組中

說明

file(string $filename, int $flags = 0, ?resource $context = null): array|false

把整個(gè)文件讀入一個(gè)數(shù)組中。

注意:

你可以通過 file_get_contents() 以字符串形式獲取文件的內(nèi)容。

參數(shù)

filename

文件的路徑。

小技巧

如已啟用fopen 包裝器,在此函數(shù)中, URL 可作為文件名。關(guān)于如何指定文件名詳見 fopen()。各種 wapper 的不同功能請(qǐng)參見 支持的協(xié)議和封裝協(xié)議,注意其用法及其可提供的預(yù)定義變量。

flags

可選參數(shù) flags 可以是以下一個(gè)或多個(gè)常量:

FILE_USE_INCLUDE_PATH
include_path 中查找文件。
FILE_IGNORE_NEW_LINES
省略數(shù)組中每個(gè)元素末尾的換行符
FILE_SKIP_EMPTY_LINES
跳過空行

context

上下文流(context stream) resource。

返回值

返回?cái)?shù)組形式的文件內(nèi)容。數(shù)組的每個(gè)元素對(duì)應(yīng)于文件中的一行(結(jié)尾會(huì)附加換行符)。 失敗時(shí),file() 返回 false。

注意:

除非使用了 FILE_IGNORE_NEW_LINES ,否則結(jié)果數(shù)組中的每一行都將包含行尾。

注意: 在讀取在 Macintosh 電腦中或由其創(chuàng)建的文件時(shí), 如果 PHP 不能正確的識(shí)別行結(jié)束符,啟用運(yùn)行時(shí)配置可選項(xiàng) auto_detect_line_endings 也許可以解決此問題。

錯(cuò)誤/異常

如果文件不存在,則發(fā)出 E_WARNING 級(jí)錯(cuò)誤。

范例

示例 #1 file() 例子

<?php
// 將一個(gè)文件讀入數(shù)組。本例中通過 HTTP 從 URL 中取得 HTML 源文件。

$lines file('http://www.example.com/');

// 在數(shù)組中循環(huán),顯示 HTML 的源文件并加上行號(hào)。

foreach ($lines as $line_num => $line) {
    echo 
"Line #<b>{$line_num}</b> : " htmlspecialchars($line) . "<br />\n";
}

// 使用可選的 flags 參數(shù)
$trimmed file('somefile.txt'FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);
?>

注釋

警告

使用 SSL 時(shí),Microsoft IIS 會(huì)違反協(xié)議不發(fā)送close_notify標(biāo)記就關(guān)閉連接。PHP 會(huì)在到達(dá)數(shù)據(jù)尾端時(shí)報(bào)告“SSL: Fatal Protocol Error”。 要解決此問題,error_reporting 應(yīng)設(shè)定為降低級(jí)別至不包含警告。 PHP 4.3.7 及更高版本可以在使用 https:// 包裝器打開流時(shí)檢測(cè)出有問題的 IIS 服務(wù)器軟件 并抑制警告。在使用 fsockopen() 創(chuàng)建 ssl:// 套接字時(shí), 開發(fā)者需檢測(cè)并抑制此警告。

參見