成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

mingde / 1461人閱讀

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

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

echo "";//服務器根目錄
mkdir("/hello");//操作系統盤根目錄

6.路徑解析函數

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

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

?chdir — 改變目錄
?chroot — 改變根目錄
?closedir — 關閉目錄句柄
?dir — 返回一個 Directory 類實例
?getcwd — 取得當前工作目錄
?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);

三、統計目錄中個數和大小
1.使用遞歸統計目錄下所有文件的個數,如下:

    $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 "目錄個數為".$dirNum."
"; echo "文件個數為".$fileNum."
"; closedir($dir); }else{ echo "這個文件名不是目錄
"; } } getdirnum("test");

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

    $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.統計磁盤/磁盤可用空間大小

    $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為權限,用戶、組、其他用戶各自有r=4/w=2/x=1的權限,如0644為rw_/r__/r__(Linux權限的知識)
2.rmdir("test"):刪除目錄,注意目錄要為空
3.unlink("test.php"):刪除文件
4.利用遞歸刪除非空目錄,如下:

**注:切記排除目錄下的.和..,否則會刪除整個磁盤內容,且不進回收站!**
    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.復制和移動目錄
1.rename():重命名一個文件或目錄,加上路徑后即為移動文件,因此移動和重命名是一個函數
bool rename ( string $oldname , string $newname [, resource $context ] )
2.copy():只能拷貝文件,無法拷貝目錄
bool copy ( string $source , string $dest [, resource $context ] )
3.拷貝非空目錄函數:

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

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

轉載請注明本文地址:http://m.hztianpu.com/yun/25702.html

相關文章

  • PHP 文件系統完全指南

    摘要:同時,還封裝了常用目錄及文件操作的面向對象接口和迭代器接口方便大家使用文件系統的元數據什么是元數據元數據通俗一點講就是數據的數據。 本文首發(fā)于個人博客 PHP 文件系統完全指南,轉載請注明出處。 今天我們將開啟一個新的探索旅程,深入到 PHP 文件系統中,系統的學習和掌握 PHP 文件系統的基本使用。 相信大家在日常研發(fā)過程中,難免需要和各種文件糾纏不清。比如,打開 .env 文件并從...

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

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

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

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

    CoreDump 評論0 收藏0

發(fā)表評論

0條評論

mingde

|高級講師

TA的文章

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