is this article helpful?
Python replacement for PHP's file [ edit | history ]

PHP file

PHP original manual for file [ show | ]


(PHP 4, PHP 5)

fileReads entire file into an array


array file ( string $filename [, int $flags= 0 [, 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.



Path to the file.


A URL can be used as a filename with this function if the fopen wrappers have been enabled. See fopen() for more details on how to specify the filename and List of Supported Protocols/Wrappers for a list of supported URL protocols.


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

Search for the file in the include_path.
Do not add newline at the end of each array element
Skip empty lines
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.
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.


A context resource created with the stream_context_create() function.

Note: Context support was added with PHP 5.0.0. For a description of contexts, refer to Stream Functions.

Return Values

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: If PHP is not properly recognizing the line endings when reading files either on or created by a Macintosh computer, enabling the auto_detect_line_endings run-time configuration option may help resolve the problem.


Version Description
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

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

// Loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {
"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(''));

// Using the optional flags parameter since PHP 5
$trimmed file('somefile.txt'FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);



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 work around this, the value of error_reporting should be lowered to a level that does not 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. When using fsockopen() to create an ssl:// socket, the developer is responsible for detecting and suppressing this warning.

See Also