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