PHP获取指定文件详细信息的实例代码

发布时间:2020-09-22编辑:脚本学堂
分享一例php代码,用于获取指定文件的详细信息,包括文件大小、文件是否可读、文件是否可写、文件的创建时间与修改时间等。有需要的朋友参考下吧。

写了几个php函数,用来取得指定文件的信息,主要学习下file_existsis_file、is_dir、is_readable、is_writeable、filetype方法的用法。
例子:
 

复制代码 代码示例:

<?php
 /**
 * 功能:获取文件信息
 * 编辑:www.jb200.com
 */

 //设置默认时区
 date_default_timezone_set('PRC');

 function getFileInfo($filePath){
  if(!file_exists($filePath)){
   echo '指定的文件不存在!';
   return;
  }
  if(is_file($filePath)){
   echo $filePath.'是一个文件'.'<br>';
  }
  if(is_dir($filePath)){
   echo $filePath.'是一个目录'.'<br>';
  }

  echo '文件的形态:'.getFileType($filePath).'<br>';
  echo '文件的大小:'.getFileSize($filePath).'<br>';


  if(is_readable($filePath)){
   echo '文件可读'.'<br>';
  }else{
   echo '文件不可读'.'<br>';
  }

  if(is_writeable($filePath)){
   echo '文件可写'.'<br>';
  }else{
   echo '文件不可写'.'<br>';
  }

  echo '文件建立的时间:'.date('Y年m月d日',filectime($filePath)).'<br>';
  echo '文件最后修改的时间:'.date('Y年m月d日',filemtime($filePath)).'<br>';
  echo '文件最后访问的时间:'.date('Y年m月d日',fileatime($filePath)).'<br>';
 }

 function getFileType($filePath){
  switch(filetype($filePath)){
   case 'file':
    $type.='普通文件';
    break;
   case 'dir':
    $type.='目录文件';
    break;
   case 'block':
    $type.='块设备文件';
    break;
   case 'char':
    $type.='字符设备文件';
    break;
   case 'fifo':
    $type.='命名管道文件';
    break;
   case 'link':
    $type.='符号链接';
    break;
   case 'unknown':
    $type.='未知文件类型';
    break;
   default:
    $type.='没有检测到文件类型';
  }
  return $type;
 }

 function getFileSize($filePath){
  $bytes=filesize($filePath);
  //1TB=1024GB 1GB=1024MB 1MB=1024KB 1KB=1024B
  if($bytes > pow(2,40)){
   $size = round($bytes/pow(1024,4),2);
   $unit = 'TB';
  }elseif($bytes > pow(2,30)){
   $size = round($bytes/pow(1024,3),2);
   $unit = 'GB';
  }elseif($bytes > pow(2,20)){
   $size = round($bytes/pow(1024,2),2);
   $unit = 'MB';
  }elseif($bytes > pow(2,10)){
   $size = round($bytes/pow(1024,1),2);
   $unit = 'KB';
  }else{
   $size = $bytes;
   $unit = 'Byte';
  }
  return $size.' '.$unit;
 }
 $filePath = $_SERVER['DOCUMENT_ROOT'].'/test/editor.php';
 getFileInfo($filePath);
?>

以下是调用上面的方法的测试结果,进行测试的文件为:F:/www/test/index.php。

输出结果:
 

文件的形态:普通文件
文件的大小:654 Byte
文件可读
文件可写
文件建立的时间:2013年05月31日
文件最后修改的时间:2013年06月01日
文件最后访问的时间:2013年05月31日