PHP中文件的基本属性

Author: 刘老师(Aaron Lau) 武汉长乐教育,武汉PHP培训课程,版权所有,转载请注明!

PHP中文件的基本属性

课程概要

  1. filetype 获取文件的类型
  2. 文件属性的一个实例

1. 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");

2. 文件属性的一个实例

//声明一个函数,通过传入一个文件名称获取文件大部分属性
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 月 j 日",filectime($fileName))."<br>";
    echo "文件最后更动时间: ".date("Y 年 m 月 j 日",filemtime($fileName))."<br>";
    echo "文件最后打开时间: ".date("Y 年 m 月 j 日",fileatime($fileName))."<br>";
}

//声明一个函数用来返回文件的类型
function getFileType($fileName) {
    //通过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 getFileSize($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文件传入,获取属性
getFilePro("file.php");
没有更多了 下一篇课程

学生登录