您的位置:首页 > 其它

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

2017-03-04 16:21 288 查看
<?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");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: