Forum und email

file

(PHP 4, PHP 5)

file — Reads entire file into an array

說明

array file ( string $filename [, int $flags [, resource $context ]] )

Reads an entire file into an array.

Note: You can use file_get_contents() to return the contents of a file as a string.

參數

filename

Path to the file.

Tip

如果「fopen wrappers」已經被啟用,則在本函式中可以把 URL 作為檔案名來使用。請參閱 fopen() 函式來獲取如何指定文件名的詳情以及支援 URL 協定列表:List of Supported Protocols/Wrappers

flags

The optional parameter flags can be one, or more, of the following constants:

FILE_USE_INCLUDE_PATH
Search for the file in the include_path.
FILE_IGNORE_NEW_LINES
Do not add newline at the end of each array element
FILE_SKIP_EMPTY_LINES
Skip empty lines
FILE_TEXT
The content is returned in UTF-8 encoding. You can specify a different encoding by creating a custom context. This flag cannot be used with FILE_BINARY. This flag is only available since PHP 6.
FILE_BINARY
The content is read as binary data. This is the default setting and cannot be used with FILE_TEXT. This flag is only available since PHP 6.

context

A context resource created with the stream_context_create() function.

Note: 對 context 的支援是 PHP 5.0.0 增加的。有關 context 的說明見Streams

Return值

Returns the file in an array. Each element of the array corresponds to a line in the file, with the newline still attached. Upon failure, file() returns FALSE.

Note: Each line in the resulting array will include the line ending, unless FILE_IGNORE_NEW_LINES is used, so you still need to use rtrim() if you do not want the line ending present.

Note: 如果碰到 PHP 在讀取文件時不能識別 Macintosh 文件的換行字元,可以開啟 auto_detect_line_endings 執行時期設定選項。

更新日誌

版本 說明
6.0.0 Added support for the FILE_TEXT and FILE_BINARY flags.
5.0.0 The context parameter was added
5.0.0 Prior to PHP 5.0.0 the flags parameter only covered include_path and was enabled with 1
4.3.0 file() became binary safe

範例

Example#1 file() example

<?php
// Get a file into an array.  In this example we'll go through HTTP to get
// the HTML source of a URL.
$lines file('https://www.example.com/');

// Loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {
    echo 
"Line #<b>{$line_num}</b> : " htmlspecialchars($line) . "<br />\n";
}

// Another example, let's get a web page into a string.  See also file_get_contents().
$html implode(''file('https://www.example.com/'));
?>

註釋

Warning

When using SSL, Microsoft IIS will violate the protocol by closing the connection without sending a close_notify indicator. PHP will report this as "SSL: Fatal Protocol Error" when you reach the end of the data. To workaround this, you should lower your error_reporting level not to include warnings. PHP 4.3.7 and higher can detect buggy IIS server software when you open the stream using the https:// wrapper and will suppress the warning for you. If you are using fsockopen() to create an ssl:// socket, you are responsible for detecting and suppressing the warning yourself.