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 )