文件操作函数:文件的属性

<?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");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值