(PHP 4, PHP 5, PHP 7, PHP 8)
file — 把整個(gè)文件讀入一個(gè)數組中
$filename
, int $flags
= 0, ?resource $context
= null
): array|false把整個(gè)文件讀入一個(gè)數組中。
注意:
你可以通過(guò) file_get_contents() 以字符串形式獲取文件的內容。
filename
文件的路徑。
如已啟用fopen 包裝器,在此函數中, URL 可作為文件名。關(guān)于如何指定文件名詳見(jiàn) fopen()。各種 wapper 的不同功能請參見(jiàn) 支持的協(xié)議和封裝協(xié)議,注意其用法及其可提供的預定義變量。
flags
可選參數 flags
可以是以下一個(gè)或多個(gè)常量:
FILE_USE_INCLUDE_PATH
FILE_IGNORE_NEW_LINES
FILE_SKIP_EMPTY_LINES
context
上下文流(context stream) resource。
返回數組形式的文件內容。數組的每個(gè)元素對應于文件中的一行(結尾會(huì )附加換行符)。
失敗時(shí),file() 返回 false
。
注意:
除非使用了
FILE_IGNORE_NEW_LINES
,否則結果數組中的每一行都將包含行尾。
注意: 在讀取在 Macintosh 電腦中或由其創(chuàng )建的文件時(shí), 如果 PHP 不能正確的識別行結束符,啟用運行時(shí)配置可選項 auto_detect_line_endings 也許可以解決此問(wèn)題。
如果文件不存在,則發(fā)出 E_WARNING
級錯誤。
示例 #1 file() 例子
<?php
// 將一個(gè)文件讀入數組。本例中通過(guò) HTTP 從 URL 中取得 HTML 源文件。
$lines = file('http://www.example.com/');
// 在數組中循環(huán),顯示 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 時(shí),Microsoft IIS
會(huì )違反協(xié)議不發(fā)送close_notify
標記就關(guān)閉連接。PHP 會(huì )在到達數據尾端時(shí)報告“SSL: Fatal Protocol Error”。
要解決此問(wèn)題,error_reporting 應設定為降低級別至不包含警告。
PHP 4.3.7 及更高版本可以在使用 https://
包裝器打開(kāi)流時(shí)檢測出有問(wèn)題的 IIS 服務(wù)器軟件 并抑制警告。在使用
fsockopen() 創(chuàng )建 ssl://
套接字時(shí), 開(kāi)發(fā)者需檢測并抑制此警告。