PHP | fstat 函数
怎样获取文件的统计信息
最近更新时间 2021-01-18 17:53:54
fstat 函数根据文件指针获取文件信息。
fstat() 函数返回包括文件信息的数组。如果出现错误返回 false。跟 stat() 函数相似。
函数定义
fstat ( resource $handle ) : array
// 源文件位于:ext/standard/file.c
# 函数定义
PHPAPI void php_fstat(php_stream *stream, zval *return_value)
{
...
char *stat_sb_names[13] = {
"dev", "ino", "mode", "nlink", "uid", "gid", "rdev",
"size", "atime", "mtime", "ctime", "blksize", "blocks"
};
#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
ZVAL_LONG(&stat_blocks, stat_ssb.sb.st_blocks);
#else
ZVAL_LONG(&stat_blocks,-1);
#endif
/* Store numeric indexes in proper order */
zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &stat_dev);
...
/* Store string indexes referencing the same zval*/
zend_hash_str_add_new(Z_ARRVAL_P(return_value), stat_sb_names[0], strlen(stat_sb_names[0]), &stat_dev);
zend_hash_str_add_new(Z_ARRVAL_P(return_value), stat_sb_names[1], strlen(stat_sb_names[1]), &stat_ino);
...
}
参数
- checkhandle - 文件指针。
返回值
- checkarray - 返回文件统计信息的数组。
示例1: - 使用 fstat() 函数获取文件统计信息。
<?php
/**
* PHP fstat() 函数获取文件统计信息。
*
* @since Version 1.0.0
* @filesource
*/
// 打开文件
$fileName = 'foo.txt';
$handle = fopen($fileName, 'r');
// 获取文件统计信息
$stat = fstat($handle);
print_r($stat);
// 关闭文件
fclose($handle);
Array ( ... [9] => 1610955457 [10] => 1610955457 [11] => 4096 [12] => 8 [ino] => 1289856 [mode] => 33279 [nlink] => 1 [rdev] => 0 [size] => 20 [atime] => 1610955458 [mtime] => 1610955457 [ctime] => 1610955457 ... )