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 ... )