<?php
/**
*文件的属性
*/
function getFilePro($filename){
if(!file_exists($filename)){ // 检查文件或目录是否存在
echo "目标文件不存在<br/>";
return;
}
// 判断是否是一个普通文件,如果是则条件成立
if(is_file($filename)){
echo $filename."是一个文件<br/>";
}
// 判断是否是一个目录,如果是则条件成立
if(is_dir($filename)){
echo $filename."是一个目录<br/>";
}
echo "文件类型:".getFileType($filename)."<br/>";
echo "文件大小:".getFileSize(filesize($filename))."<br/>";
// 判断提供的文件是否可以读取内容
if(is_readable($filename)){
echo "文件可读<br/>";
}
if(is_writable($filename)){
echo "文件可写<br/>";
}
if(is_executable($filename)){
echo "文件可执行<br/>";
}
echo "文件建立时间:".date('Y 年 m 月 d 日',filectime($filename))."<br/>";
echo "文件最后更动时间:".date('Y 年 m 月 d 日',filemtime($filename))."<br/>";
echo "文件最后打开时间:".date('Y 年 m 月 d 日',fileatime($filename))."<br/>";
}
// 返回文件类型
function getFileType($filename){
$type='';
switch(filetype($filename)){
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 'unknow':
$type.='未知类型';
default:
$type.='没有检测到的类型';
}
return $type;
}
// 文件大小单位转换函数
function getFileSize($bytes){
if($bytes>=pow(2,40)){ // pow(x,y)返回x的y次方
// 将字节转换为同等的TB大小
$return=round($bytes/pow(1024,4),2);
$suffix="TB"; // 记录单位
}elseif($bytes>=pow(2,30)){
// 将字节转换为同等的GB大小
$return=round($bytes/pow(1024,3),2);
$suffix="GB"; // 记录单位
}elseif($bytes>=pow(2,20)){
// 将字节转换为同等的MB大小
$return=round($bytes/pow(1024,2),2);
$suffix="MB"; // 记录单位
}elseif($bytes>=pow(2,10)){
// 将字节转换为同等的KB大小
$return=round($bytes/pow(1024,1),2);
$suffix="KB"; // 记录单位
}else{
$return=$bytes;
$suffix="Byte";
}
return $return."".$suffix;
}
// 输出文件信息
getFilePro("./demo2.php");
/**
*文件的属性
*/
function getFilePro($filename){
if(!file_exists($filename)){ // 检查文件或目录是否存在
echo "目标文件不存在<br/>";
return;
}
// 判断是否是一个普通文件,如果是则条件成立
if(is_file($filename)){
echo $filename."是一个文件<br/>";
}
// 判断是否是一个目录,如果是则条件成立
if(is_dir($filename)){
echo $filename."是一个目录<br/>";
}
echo "文件类型:".getFileType($filename)."<br/>";
echo "文件大小:".getFileSize(filesize($filename))."<br/>";
// 判断提供的文件是否可以读取内容
if(is_readable($filename)){
echo "文件可读<br/>";
}
if(is_writable($filename)){
echo "文件可写<br/>";
}
if(is_executable($filename)){
echo "文件可执行<br/>";
}
echo "文件建立时间:".date('Y 年 m 月 d 日',filectime($filename))."<br/>";
echo "文件最后更动时间:".date('Y 年 m 月 d 日',filemtime($filename))."<br/>";
echo "文件最后打开时间:".date('Y 年 m 月 d 日',fileatime($filename))."<br/>";
}
// 返回文件类型
function getFileType($filename){
$type='';
switch(filetype($filename)){
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 'unknow':
$type.='未知类型';
default:
$type.='没有检测到的类型';
}
return $type;
}
// 文件大小单位转换函数
function getFileSize($bytes){
if($bytes>=pow(2,40)){ // pow(x,y)返回x的y次方
// 将字节转换为同等的TB大小
$return=round($bytes/pow(1024,4),2);
$suffix="TB"; // 记录单位
}elseif($bytes>=pow(2,30)){
// 将字节转换为同等的GB大小
$return=round($bytes/pow(1024,3),2);
$suffix="GB"; // 记录单位
}elseif($bytes>=pow(2,20)){
// 将字节转换为同等的MB大小
$return=round($bytes/pow(1024,2),2);
$suffix="MB"; // 记录单位
}elseif($bytes>=pow(2,10)){
// 将字节转换为同等的KB大小
$return=round($bytes/pow(1024,1),2);
$suffix="KB"; // 记录单位
}else{
$return=$bytes;
$suffix="Byte";
}
return $return."".$suffix;
}
// 输出文件信息
getFilePro("./demo2.php");