成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP文件目錄(路徑)的操作

mingde / 1383人閱讀

摘要:一解析目錄路徑程序配置文件配置文件中涉及路徑均使用,也可以使用目錄分隔符常量進(jìn)行連接麻煩多路徑分隔符,也可以使用路徑分隔符常量進(jìn)行連接程序換行符常量相對路徑當(dāng)前目錄上級目錄不同的根路徑服務(wù)器根目錄操作系統(tǒng)盤根目錄路徑解析函數(shù)取文件名取目錄名

一、解析目錄路徑
1.PHP程序、配置文件、Apache配置文件中涉及路徑均使用/,也可以使用目錄分隔符常量DIRECTORY_SEPARATOR進(jìn)行連接(麻煩)
2.多路徑分隔符Windows;Linux:,也可以使用路徑分隔符常量PATH_SEPARATOR進(jìn)行連接
3.程序換行符常量PHP_EOL
4.相對路徑:./當(dāng)前目錄../上級目錄
5.不同的根路徑

echo "";//服務(wù)器根目錄
mkdir("/hello");//操作系統(tǒng)盤根目錄

6.路徑解析函數(shù)

a.basename()取文件名
b.dirname()取目錄名
c.pathinfo()將路徑信息返回成數(shù)組
d.realpath()返回規(guī)范化的絕對路徑名

二、遍歷目錄
1.glob:匹配目錄中指定文件放入返回數(shù)組中
2.Directory函數(shù):

?chdir — 改變目錄
?chroot — 改變根目錄
?closedir — 關(guān)閉目錄句柄
?dir — 返回一個 Directory 類實例
?getcwd — 取得當(dāng)前工作目錄
?opendir — 打開目錄句柄
?readdir — 從目錄句柄中讀取條目
?rewinddir — 倒回目錄句柄
?scandir — 列出指定路徑中的文件和目錄
**注:遍歷目錄時,前兩個文件名.和..要過濾掉**
    $open=opendir("test");
    /*echo readdir($open);*/
    while($filename=readdir($open)){
        //過濾掉.和..
        if($filename!=="."&&$filename!==".."){
            //注意:此處$filename僅代表目錄名或文件名,要訪問還要加上路徑
            $filename="./test/".$filename;
            if(is_dir($filename)){
                echo "目錄:".$filename."
"; }else{ echo "文件:".$filename."
"; } } } //使用倒回句柄,倒回至目錄開始,才能再次遍歷 rewinddir($open); echo"------------------------------------------
"; while($filename=readdir($open)){ //過濾掉.和.. if($filename!=="."&&$filename!==".."){ //注意:此處$filename僅代表目錄名或文件名,要訪問還要加上路徑 $filename="./test/".$filename; if(is_dir($filename)){ echo "目錄:".$filename."
"; }else{ echo "文件:".$filename."
"; } } } closedir($open);

三、統(tǒng)計目錄中個數(shù)和大小
1.使用遞歸統(tǒng)計目錄下所有文件的個數(shù),如下:

    $dirNum=0;
    $fileNum=0;
    function getdirnum($filename){
        if(is_dir($filename)){
            $dir=opendir($filename);
            global $dirNum;
            global $fileNum;
            while($filename=readdir($dir)){                
                if($filename!=="."&&$filename!==".."){
                    $filename=$file."/".$filename;
                    if(is_dir($filename)){
                        $dirNum++;
                        getdirnum($filename);//遞歸
                    }else{
                        $fileNum++;
                    }    
                }
            }
            echo "目錄個數(shù)為".$dirNum."
"; echo "文件個數(shù)為".$fileNum."
"; closedir($dir); }else{ echo "這個文件名不是目錄
"; } } getdirnum("test");

2.使用遞歸統(tǒng)計目錄大小,即目錄下所有文件大小的和

    $size=0;
    function dirsize($file){
        global $size;
        if(is_dir($file)){
            $dir=opendir($file);            
            while($filename=readdir($dir)){                
                if($filename!=="."&&$filename!==".."){
                    $filename=$file."/".$filename;
                    if(is_dir($filename)){
                        $size+=dirsize($filename);
                    }else{
                        $size+=filesize($filename);
                    }    
                }
            }        
            closedir($dir);
        }else{
            $size=filesize($filename);
        }
        return $size/pow(2,10)."MB";
    }
    echo dirsize("test");

3.統(tǒng)計磁盤/磁盤可用空間大小

    $total=disk_total_space("c:");
    $valuable=disk_free_space("c:");
    echo $total/pow(2,30)."";    
    echo $valuable/pow(2,30)."";

三、建立和刪除目錄
1.mkdir("test",0644):創(chuàng)建目錄
bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
注:$mode為權(quán)限,用戶、組、其他用戶各自有r=4/w=2/x=1的權(quán)限,如0644為rw_/r__/r__(Linux權(quán)限的知識)
2.rmdir("test"):刪除目錄,注意目錄要為空
3.unlink("test.php"):刪除文件
4.利用遞歸刪除非空目錄,如下:

**注:切記排除目錄下的.和..,否則會刪除整個磁盤內(nèi)容,且不進(jìn)回收站!**
    function deleteDir($dirname){
        $dir=opendir($dirname);
        while($filename=readdir($dir)){
            if($filename!=="."&&$filename!==".."){
                $filename=$dirname."/".$filename;
                if(is_dir($filename)){
                    deleteDir($filename);
                }else{
                    unlink($filename);
                }
            }
    
        }    
            
        closedir($dir);
        rmdir($dirname);
    }
    deleteDir("test");

5.復(fù)制和移動目錄
1.rename():重命名一個文件或目錄,加上路徑后即為移動文件,因此移動和重命名是一個函數(shù)
bool rename ( string $oldname , string $newname [, resource $context ] )
2.copy():只能拷貝文件,無法拷貝目錄
bool copy ( string $source , string $dest [, resource $context ] )
3.拷貝非空目錄函數(shù):

    function copyDir($dirname,$dircopy){        
        mkdir($dircopy);
        $dir=opendir($dirname);
        while($filename=readdir($dir)){
            if($filename!=="."&&$filename!==".."){
                $srcfile=$dirname."/".$filename;//原目錄名或文件名
                $tofile=$dircopy."/".$filename;//新目錄名或文件名
                if(is_dir($srcfile)){
                    copyDir($srcfile,$tofile);
                }else{
                    copy($srcfile,$tofile);
                }
            }    
        }
        closedir($dir);
        
    }
    copyDir("test","test222");

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/25702.html

相關(guān)文章

  • PHP 文件系統(tǒng)完全指南

    摘要:同時,還封裝了常用目錄及文件操作的面向?qū)ο蠼涌诤偷鹘涌诜奖愦蠹沂褂梦募到y(tǒng)的元數(shù)據(jù)什么是元數(shù)據(jù)元數(shù)據(jù)通俗一點講就是數(shù)據(jù)的數(shù)據(jù)。 本文首發(fā)于個人博客 PHP 文件系統(tǒng)完全指南,轉(zhuǎn)載請注明出處。 今天我們將開啟一個新的探索旅程,深入到 PHP 文件系統(tǒng)中,系統(tǒng)的學(xué)習(xí)和掌握 PHP 文件系統(tǒng)的基本使用。 相信大家在日常研發(fā)過程中,難免需要和各種文件糾纏不清。比如,打開 .env 文件并從...

    source 評論0 收藏0
  • PHP開發(fā)手冊》筆記之PHP中關(guān)于目錄操作函數(shù)

    摘要:例子讀取目錄中的文件關(guān)閉返回的資源對象運行結(jié)果表示當(dāng)前目錄表示上一級目錄目錄中的文件目錄中的文件目錄中的文件創(chuàng)建目錄要創(chuàng)建的目錄地址例子創(chuàng)建目錄創(chuàng)建目錄刪除目錄要刪除的目錄地址,該目錄必須是一個空目錄例子刪除目錄刪除目錄 打開目錄 opendir(string path);//path--目錄所在的路徑,返回一個資源對象,用于存儲當(dāng)前目錄資源 bool is_dir(string p...

    JinB 評論0 收藏0
  • 徒手用 Docker 構(gòu)建自己 PHP 開發(fā)環(huán)境

    摘要:用進(jìn)行操作為在的工作區(qū)域,項目也是掛載在里面,所有我們可以直接在容器里運行?;蛘哌M(jìn)入宿主機目錄下用命令注意事項注意掛載路徑構(gòu)建失敗時,注意容器內(nèi)是否報錯加速鏡像。本文首發(fā)在我的博客徒手用構(gòu)建自己的開發(fā)環(huán)境 1. 前言 1.1 為什么要用 Docker ? 是否有這樣的場景,你搞了一個項目,在本地開發(fā)時需要搭建環(huán)境,放到線上時也需要搭建環(huán)境,到公司想暗戳戳玩一下要搭建環(huán)境,不搭還不行,因...

    CoreDump 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<