使用PHP创建一个在线文件库(2)目录操作

5 篇文章 0 订阅

惊到我了
在这里插入图片描述

项目目标

实现具有上传,查看,删除。下载功能的在线文件库。
第一阶段-文件操作.
第三阶段-文件上传
第二阶段
目录操作:主要包括创建,删除目录,解析目录,遍历目录

1.删除和创建目录

1.mkdir函数:创建指定目录,返回bool
在这里插入图片描述
2.rmdir函数:删除指定目录,返回bool,需要注意的一点是若目录不为空或者没有操作权限,那么将不能完成操作。
在这里插入图片描述

2.目录删除与创建的练习

<?php
    echo "创建和删除目录";
    $dirname="testdir";
    if(mkdir($dirname)){
        echo "$dirname 创建成功"."<br>";
        //直接创建目录
    }
    if(mkdir($dirname."/subdir/subbdir",0777,true)){
        //允许递归创建由 pathname 所指定的多级嵌套目录
        echo "$dirname /subdir/subbdir操作成功"."<br>";
    }
    else{
        echo "操作失败"."<br>";
    }

    if(rmdir($dirname.'/subdir')){
        //尝试对非空目录删除
        echo "删除目录,操作成功"."<br>";
    }
    else{
        echo "$dirname/subdir删除失败"."<br>";
        //失败
    }
    if(rmdir("$dirname/subdir/subbdir")){
        echo "$dirname /subdir/subbdir删除目录,操作成功"."<br>";
        //尝试对空目录操作
        //操作成功
    }
    else{
        echo "删除失败"."<br>";
    }
?>

得到
在这里插入图片描述

3.解析目录

1.basename函数:返回路径中的完整文件名,比如"index.php".

2.dirname函数:返回路径中指向文件的完整路径,即去除文件名.

3.pathinfo函数:以数组的形式返回路径中的路径名,文件名,扩展名,不带扩展的文件名。
在这里插入图片描述

4.解析目录的练习

<?php
    $path='test/php/project/index.php';//
    echo "path=$path <br> basename(\$path)=";
    echo basename($path)."<br>";//输出文件名(带扩展)
    echo "dirname($path)=";
    echo dirname($path);//输出完整路径
    echo "<br>";
    foreach(pathinfo($path) as $k => $v){
    //pathinfo输出带有文件信息的数组
        echo "pathingo[$k]=$v <br>";
    }

得到
在这里插入图片描述

5.遍历目录

1.opendir函数:打开指定的目录,返回目录的指针,失败返回false

2.closedir函数:关闭打开的目录

3.readdir函数:返回下一个文件名
在这里插入图片描述
4.scandir函数:不需要打开文件之后获得的指针作为参数,可以直接将路径作为参数,返回以数组形式的所有文件名
在这里插入图片描述
5.disk_total_space函数:返回总目录的磁盘空间大小

6.disk_free_space函数:返回总目录的空闲空间大小

6.遍历目录的练习

<?php
    $dirname='.';//当前文件夹
    echo "path=$dirname总空间:",disk_total_space($dirname);//输出总容量
    echo "   目录可用空间:",disk_free_space($dirname);//输出可用大小
    echo "    使用readdir()遍历目录:<br>";
    echo '<table border=1 width=100%>
            <col witdth=20%/>
            <col witdth=20%/>
            <col witdth=20%/>
            <col witdth=20%/>
            ';
    //定义表格html
            echo '<tr>'; 
            echo '<td>文件名</td>';
            echo '<td>文件类型</td>';
            echo '<td>创建时间</td>';
            echo '<td>文件大小</td>';
            echo '</tr>';
    $handle=opendir($dirname);//得到目录指针
    while(true){//使用全真巡循环
        $a=readdir($handle);//使用readdir获取文件名
        //指针移动
        if (is_bool($a)) //但无返回文件名时返回false或者其他bool
        break;//跳出while
        if (is_string($a))//返回成功的文件名是string类型
            echo '<tr>'; //表格开始一行
            echo '<td>',$a.'</td>';//下一列
            echo '<td>',filetype($a)."</td>";//下一列
            echo '<td>',date("Y-m-d G:i:s",filectime($a))."</td>";
            echo '<td>',filesize($a)."</td>";
            echo '</tr>';//一行结束
    }
    closedir($handle);

    
    echo '<table border=1 width=100%>
            <col witdth=20%/>
            <col witdth=20%/>
            <col witdth=20%/>
            <col witdth=20%/>
            ';
    //定义表格html
            echo '<tr>'; 
            echo '<td>文件名</td>';
            echo '<td>文件类型</td>';
            echo '<td>创建时间</td>';
            echo '<td>文件大小</td>';
            echo '</tr>';
    echo "    使用scandir()遍历目录:<br>";
    $arr=scandir($dirname);
    //返回一个array
    foreach($arr as $a){
    //使用foreach遍历array
        echo '<tr>'; 
            echo '<td>',$a.'</td>';
            echo '<td>',filetype($a)."</td>";
            echo '<td>',date("Y-m-d G:i:s",filectime($a))."</td>";
            echo '<td>',filesize($a)."</td>";
            echo '</tr>';
    }
?>

得到

在这里插入图片描述

目录的操作差不多就这些

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值