当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP stat( )用法及代码示例


PHP中的stat()函数是一个内置函数,用于返回文件信息。 stat(0)函数返回文件的统计信息,该文件是具有以下元素的数组:

  • [0]或[dev]-设备号
  • [1]或[ino]-索引节点编号
  • [2]或[mode]-索引节点保护模式
  • [3]或[nlink]-链接数
  • [4]或[uid]-所有者的用户ID
  • [5]或[gid]-所有者的组ID
  • [6]或[rdev]-Inode设备类型
  • [7]或[size]-字节大小
  • [8]或[atime]-上次访问(如Unix时间戳记)
  • [9]或[mtime]-最后修改时间(如Unix时间戳记)
  • [10]或[ctime]-最后的inode更改(如Unix时间戳记)
  • [11]或[blksize]-文件系统IO的块大小
  • [12]或[blocks]-分配的块数

stat()函数接受文件名作为参数,并在成功时返回包含上述元素的数组,在失败时返回具有False的数组。
如果filename是符号链接,则统计信息来自文件本身,而不是符号链接。

用法:


stat(filename)

使用的参数:
PHP中的stat()函数接受一个参数。

  1. filename:它指定要了解其统计信息的文件的文件名。

返回值:
如果成功,则返回带有上述元素的数组;如果失败,则返回False。

错误与异常

  1. stat()函数的结果因服务器而异。
  2. stat()函数的结果被缓存,因此应使用clearstatcache()函数清除缓存。
  3. stat()函数在失败时生成E_WARNING。
  4. 在Windows平台上,所有者的组标识,所有者的用户标识和索引节点号始终为0。
  5. 对于大于2GB的文件,由于PHP的整数类型是带符号的并且许多平台使用32位整数,因此某些文件系统函数可能会返回意外结果。

例子:

Input : $test = stat('gfg.txt');
        echo 'Access time: ' .$test['atime'];
        echo '
Modification time: ' .$test['mtime']; echo '
Device number: ' .$test['dev']; Output :Access time: 1141666750 Modification time: 1135897503 Device number: 0 Input : $test = stat('gfg.txt'); echo 'Access time: ' .$test[8]; echo '
Modification time: ' .$test[9]; echo '
Device number: ' .$test[0]; Output : Access time: 1141666750 Modification time: 1135897503 Device number: 0 Input : $test = stat('gfg.txt'); $access_time = $stat['atime'] + 18000; if (touch($test, time(), $access_time)) { echo 'Access time changed to 5 hours in the past!'; } else { echo 'Access time could not be changed.'; } Output : Access time changed to 5 hours in the past!

以下示例程序旨在说明stat()函数。

假设有一个名为“gfg.txt”的文件

程序1:

<?php 
$test = stat('gfg.txt'); 
//using stat() along with name index to display access time 
echo 'Access time: ' .$test['atime']; 
  
//using stat() along with name index  to display modification time 
echo '<br />Modification time: ' .$test['mtime']; 
  
//using stat() along with name index  to display device number 
echo '<br />Device number: ' .$test['dev']; 
?>

输出:

Access time: 1141666750
Modification time: 1135897503
Device number: 0

程序2:

<?php 
$test = stat('gfg.txt'); 
  
//using stat() along with number index to display access time 
echo 'Access time: ' .$test[8]; 
  
//using stat() along with number index to display modification time 
echo '<br />Modification time: ' .$test[9]; 
  
//using stat() along with number index to display device number 
echo '<br />Device number: ' .$test[0]; 
?>

输出:

Access time: 1141666750
Modification time: 1135897503
Device number: 0

程序3:

<?php 
$test = stat('gfg.txt'); 
  
//changing access time to 5 hours in the past 
$access_time = $stat['atime'] + 18000; 
  
//using touch() function to change the access time 
if (touch($test, time(), $access_time))  
{ 
   echo 'Access time changed to 5 hours in the past!'; 
}  
else 
{ 
   echo 'Access time could not be changed.'; 
} 
  
?>

输出:

Access time changed to 5 hours in the past!

参考:
http://php.net/manual/en/function.stat.php



相关用法


注:本文由纯净天空筛选整理自Shubrodeep Banerjee大神的英文原创作品 PHP | stat() function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。