file
(PHP 4, PHP 5, PHP 7, PHP 8)
file — 把整個檔案讀入一個陣列中
說明
$filename
, int $flags
= 0, ?resource $context
= null
): array|false把整個檔案讀入一個陣列中。
注意:
你可以通過 file_get_contents() 以字串形式獲取檔案的內容。
參數
-
filename
-
檔案的路徑。
小技巧如已啟用fopen 包裝器,在此函式中, URL 可作為檔名。關於如何指定檔名詳見 fopen()。各種 wapper 的不同功能請參見 支援的協議和封裝協議,注意其用法及其可提供的預定義變數。
-
flags
-
可選參數
flags
可以是以下一個或多個常量:-
FILE_USE_INCLUDE_PATH
- 在 include_path 中查詢檔案。
-
FILE_IGNORE_NEW_LINES
- 省略陣列中每個元素末尾的換行符
-
FILE_SKIP_EMPTY_LINES
- 跳過空行
-
-
context
-
上下文流(context stream) resource。
返回值
返回陣列形式的檔案內容。陣列的每個元素對應于檔案中的一行(結尾會附加換行符)。
失敗時,file() 返回 false
。
注意:
除非使用了
FILE_IGNORE_NEW_LINES
,否則結果陣列中的每一行都將包含行尾。
注意: 在讀取在 Macintosh 電腦中或由其建立的檔案時, 如果 PHP 不能正確的識別行結束符,啟用執行時配置可選項 auto_detect_line_endings 也許可以解決此問題。
錯誤/異常
如果檔案不存在,則發出 E_WARNING
級錯誤。
範例
示例 #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://
套接字時, 開發者需檢測並抑制此警告。
參見
- file_get_contents() - 將整個檔案讀入一個字串
- readfile() - 輸出檔案
- fopen() - 打開檔案或者 URL
- fsockopen() - 打開一個網路連線或者一個Unix套接字連線
- popen() - 打開程序檔案指針
- include - include
- stream_context_create() - 建立資源流上下文