使用PHP創建一個在線文件庫(2)目錄操作

驚到我了
在這裏插入圖片描述

項目目標

實現具有上傳,查看,刪除。下載功能的在線文件庫。
第一階段-文件操作.
第三階段-文件上傳
第二階段
目錄操作:主要包括創建,刪除目錄,解析目錄,遍歷目錄

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>';
    }
?>

得到

在這裏插入圖片描述

目錄的操作差不多就這些

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章