国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

mingde / 1325人閱讀

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

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

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

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

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

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

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

三、統(tǒng)計(jì)目錄中個(gè)數(shù)和大小
1.使用遞歸統(tǒng)計(jì)目錄下所有文件的個(gè)數(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 "目錄個(gè)數(shù)為".$dirNum."
"; echo "文件個(gè)數(shù)為".$fileNum."
"; closedir($dir); }else{ echo "這個(gè)文件名不是目錄
"; } } getdirnum("test");

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

    $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)計(jì)磁盤(pán)/磁盤(pán)可用空間大小

    $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)限的知識(shí))
2.rmdir("test"):刪除目錄,注意目錄要為空
3.unlink("test.php"):刪除文件
4.利用遞歸刪除非空目錄,如下:

**注:切記排除目錄下的.和..,否則會(huì)刪除整個(gè)磁盤(pán)內(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ù)制和移動(dòng)目錄
1.rename():重命名一個(gè)文件或目錄,加上路徑后即為移動(dòng)文件,因此移動(dòng)和重命名是一個(gè)函數(shù)
bool rename ( string $oldname , string $newname [, resource $context ] )
2.copy():只能拷貝文件,無(wú)法拷貝目錄
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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/25702.html

相關(guān)文章

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

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

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

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

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

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

    CoreDump 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<