首页 / php开发 / PHP中文件的基本属性(一)

PHP中文件的基本属性(一)

2020-09-08 09:08 php开发 阅读 977 来源


常用函数

函数名含义
filetype
获取文件的类型(普通文件、目录。。)
file_exists
文件是否存在
is_file
是否是文件
is_dir
是否是文件夹
filesize
文件的大小(byte)
is_readable
是否可读
is_writable
是否可写
is_executable
是否可执行
filectime
文件创建时间
filemtime
修改时间
fileatime
打开时间

filetype 获取文件的类型

//获取Linux系统下文件类型
//输出file,/etc/passwd为普通文件
echo filetype('/etc/passwd');

//输出link,/etc/grub.conf为链接文件,链接到/boot/grub/grub.conf
echo filetype('/etc/grub.conf');

//输出dir,/etc/为一个目录,即文件夹
echo filetype('/etc/');

//输出block,/dev/sda1为块设备,它是一个分区
echo filetype('/dev/sda1');

//输出char,为字符设备,它是一个字符终端
echo filetype('/dev/tty01');

//获取Windows系统下文件类型
//输出file,C:\WINDOWS\php.ini为一个普通文件
echo filetype("C:\\WINDOWS\\php.ini");

//输出dir,C:\WINDOWS为一个文件夹(目录)
echo filetype("C:\\WINDOWS");

文件属性的一个实例

//声明一个函数,通过传入一个文件名称获取文件大部分属性
function get_file_pro($filename) {
    //如果提供的文件或目录不存在,则直接退出函数
    if(!file_exists($filename)) {
        echo "目标文件不存在!!<br>";
        return;
    }

    //判断是否是一个普通文件,如果是则条件成立
    if(is_file($filename))
        echo $filename."是一个文件<br>";

    //判断是否是一个目录,如果是则条件成立,输出下面语句
    if(is_dir($filename))
        echo $filename."是一个目录<br>";

    //用定义的函数输出文件类型
    echo "文件类型:".get_file_type($filename)."<br>";

    //获取文件大小,并自定义转换单位
    echo "文件大小:".get_file_size(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 月 j 日",filectime($filename))."<br>";
    echo "文件最后更动时间: ".date("Y 年 m 月 j 日",filemtime($filename))."<br>";
    echo "文件最后打开时间: ".date("Y 年 m 月 j 日",fileatime($filename))."<br>";
}

//声明一个函数用来返回文件的类型
function get_file_type($filename) {
    $type = "";
    //通过filetype()函数返回的文件类型做为选择的条件
    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 'unknown':
            $type.="末知类型";
            break;
        default:
            $type.="没有检测到类型";
    }

    //返回转换后的类型
    return $type;
}

//自定义一个文件大小单位转换函数
function get_file_size($bytes) {
    //如果提供的字节数大于等于2的40次方,则条件成立
    if ($bytes >= pow(2,40)) {
        //将字节大小转换为同等的T大小
        $return = round($bytes / pow(1024,4), 2);

        //单位为TB
        $suffix = "TB";

        //如果提供的字节数大于等于2的30次方,则条件成立
    } elseif ($bytes >= pow(2,30)) {
        //将字节大小转换为同等的G大小
        $return = round($bytes / pow(1024,3), 2);

        //单位为GB
        $suffix = "GB";
        //如果提供的字节数大于等于2的20次方,则条件成立
    } elseif ($bytes >= pow(2,20)) {
        //将字节大小转换为同等的M大小
        $return = round($bytes / pow(1024,2), 2);

        //单位为MB
        $suffix = "MB";
        //如果提供的字节数大于等于2的10次方,则条件成立
    } elseif ($bytes >= pow(2,10)) {
        //将字节大小转换为同等的K大小
        $return = round($bytes / pow(1024,1), 2);

        //单位为KB
        $suffix = "KB";
        //否则提供的字节数小于2的10次方,则条件成立
    } else {
        //字节大小单位不变
        $return = $bytes;

        //单位为Byte
        $suffix = "Byte";
    }

    //返回合适的文件大小和单位
    return $return ." " . $suffix;
}

//调用自定义函数,将当前目录下的file.php文件传入,获取属性
get_file_pro("file.php");


猜你喜欢