PHP | file 函數
怎樣讀取文件到數組中
最近更新時間 2021-01-03 20:33:18
file 函數把整個文件讀入一個數組中。
file() 函數會把讀取的文件放到數組中,默認情況下數組中的一行對應數組中的一個元素。讀取失敗時返回 false。
函數定義
file ( string $filename [, int $flags = 0 [, resource $context ]] ) : array
// 源文件位於:ext/standard/file.c
# 函數定義
PHP_FUNCTION(file)
{
...
if (flags < 0 || flags > (PHP_FILE_USE_INCLUDE_PATH | PHP_FILE_IGNORE_NEW_LINES | PHP_FILE_SKIP_EMPTY_LINES | PHP_FILE_NO_DEFAULT_CONTEXT)) {
zend_argument_value_error(2, "must be a valid flag value");
RETURN_THROWS();
}
use_include_path = flags & PHP_FILE_USE_INCLUDE_PATH;
include_new_line = !(flags & PHP_FILE_IGNORE_NEW_LINES);
skip_blank_lines = flags & PHP_FILE_SKIP_EMPTY_LINES;
context = php_stream_context_from_zval(zcontext, flags & PHP_FILE_NO_DEFAULT_CONTEXT);
stream = php_stream_open_wrapper_ex(filename, "rb", (use_include_path ? USE_PATH : 0) | REPORT_ERRORS, NULL, context);
if (!stream) {
RETURN_FALSE;
}
...
php_stream_close(stream);
}
參數
- checkfilename - 文件的路徑。
- checkflags - 可選參數,flags 可以是以下一個或多個常量:
- FILE_USE_INCLUDE_PATH 在 include_path 中查找文件。
- FILE_IGNORE_NEW_LINES 在數組每個元素的末尾不要添加換行符。
- FILE_SKIP_EMPTY_LINES 跳過空行。
- checkcontext - 可選參數。
返回值
- checkarray - 成功時返回數組,失敗時返回 false。
示例1: - 使用 file() 函數讀取文件到數組中。
<?php
/**
* PHP 使用 file() 函數讀取文件到數組中。
*
* @since Version 1.0.0
* @filesource
*/
// 文件路徑
$filename = 'foo.txt';
// 讀取文件
$lines = file($filename);
// 跳過空行
// $lines = file($filename, FILE_SKIP_EMPTY_LINES);
print_r($lines);
Array ( [0] => 中 [1] => 文 [2] => Foo )