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

資訊專欄INFORMATION COLUMN

PHP常用函數(shù)之文件系統(tǒng)處理

cikenerd / 2355人閱讀

摘要:檢測(cè)檢查文件或目錄是否存在檢查給定文件名是否為一個(gè)存在的文件存在文件檢查給定目錄名是否為一個(gè)存在的目錄存在目錄判斷給定的文件名或目錄名是否存在且可讀存在文件或目錄可讀判斷給定的文件名或目錄名是否存在且可寫(xiě)存在文件或目錄可寫(xiě)路徑解析解析文件名

檢測(cè)

檢查文件或目錄是否存在

   file_exists ()

檢查給定文件名是否為一個(gè)存在的文件(存在、文件)

   is_file ( string $filename )
   

檢查給定目錄名是否為一個(gè)存在的目錄(存在、目錄)

   is_dir ( string $filename )
   

判斷給定的文件名或目錄名是否存在且可讀(存在、文件或目錄、可讀)

   is_readable ( string $filename )
   

判斷給定的文件名或目錄名是否存在且可寫(xiě)(存在、文件或目錄、可寫(xiě))

   is_writable ( string $filename )

路徑解析

解析文件名

basename ( string $path [, string $suffix ] ) //包含有指向一個(gè)文件的全路徑的字符串

解析目錄名

dirname ( string $path ) //包含有指向一個(gè)文件的全路徑的字符串

解析全路徑

pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )

目錄操作

新建目錄

mkdir (); //創(chuàng)建目錄,第三個(gè)參數(shù)表示是否遞歸創(chuàng)建

刪除目錄

rmdir (); //只能刪除空目錄,非空目錄必須使用遞歸刪除

function removeDirOrFile($path){
    if(is_file($path)){
        return unlink($path);
    }
    
    if(is_dir($path)){
        $dir_handle = opendir($path);
        while(false !== ($file = readdir($dir_handle))) {
            if($file === "." || $file === "..") continue;
            $subPath = $path.DIRECTORY_SEPARATOR.$file;
            $fnname = __FUNCTION__;
            $fnname($subPath);
        }
        closedir($dir_handle);
        return rmdir($path);
    }
    
    return FALSE;
}

移動(dòng)/重命名目錄

rename ( string $oldname , string $newname [, resource $context ] );

獲取目錄內(nèi)容

opendir();
readdir();
closedir();
rewind();

function readDirsTree($path,$deep=0){
    
    if(is_file($path)){
        exit(basename($path));
    }
    
    if(is_dir($path)){
        $dir_handle = opendir($path);
        while(false !== ($file = readdir($dir_handle))) {
            if($file === "." || $file === "..") continue;
            
            echo str_repeat(" ",$deep*2).iconv("GB2312","UTF-8",$file)."
"; if(is_dir($path.DIRECTORY_SEPARATOR.$file)){ $fnname = __FUNCTION__; $fnname($path.DIRECTORY_SEPARATOR.$file, $deep+1); } } closedir($dir_handle); } }

復(fù)制目錄

function copyDir($dirFrom, $dirTo){
    if(is_dir($dirFrom)){
        if(!file_exists($dirTo)){
            mkdir($dirTo,0777,TRUE);
        }
        
        $dir_handle = opendir($dirFrom);
        while(false !== ($file = readdir($dir_handle))) {
            if($file === "." || $file === "..") continue;
            $fromPath = $dirFrom.DIRECTORY_SEPARATOR.$file;
            $toPath = $dirTo.DIRECTORY_SEPARATOR.$file;
            
            if(is_file($fromPath)){
                copy($fromPath, $toPath);
            }
            
            if(is_dir($fromPath)){
                $fnname = __FUNCTION__;
                $fnname($fromPath, $toPath);
            }
            
        }
        closedir($dir_handle);
        return TRUE;
    }else{
        return FALSE;
    }
}

文件操作

獲取文件大小

filesize ( string $filename );

刪除文件

unlink ( string $filename);

剪切/重命名文件

rename ( string $oldname , string $newname );

拷貝文件

copy ( string $source , string $dest );

寫(xiě)文件

file_put_contents ( string $filename , mixed $data [, int $flags = 0 ] );
一般寫(xiě)文件就直接使用這個(gè)函數(shù),里面其實(shí)也是依次調(diào)用fopen(),fwrite()以及 fclose() 功能。

讀文件
file_get_contents ( string $filename );
此函數(shù)只適合讀一些小文件(文件大小很小的),如果讀大文件,必須使用下面方法,否則內(nèi)存很容易溢出

fopen ( string $filename , string $mode );
fread ( resource $handle , int $length ); //按字節(jié)數(shù)讀取
fgets ( resource $handle [, int $length ] ); //默認(rèn)長(zhǎng)度為1kb,按行讀取
fgetc ( resource $handle ); //按1個(gè)字節(jié)1個(gè)字節(jié)讀取
fclose ( resource $handle );

獲取文件修改時(shí)間
filemtime ( string $filename ); //返回時(shí)間戳

編碼問(wèn)題

在windows下,獲取含有中文的目錄名或文件名時(shí),由于中文是GBK編碼,而項(xiàng)目是utf-8編碼,所以必須轉(zhuǎn)碼iconv("GBK","utf-8",$filename);

當(dāng)輸入的路徑含有中文,由于項(xiàng)目是utf-8,而系統(tǒng)文件名或目錄名都是GBK編碼,所以必須轉(zhuǎn)為iconv("utf-8","GBK",$path);

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

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

相關(guān)文章

  • Codeigniter 4.0-dev 版源碼學(xué)習(xí)筆記二——入口以及初始化操作

    摘要:通過(guò)這個(gè)函數(shù)可以很方便的在程序運(yùn)行期間執(zhí)行很多常見(jiàn)操作。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 index.php index.php 是整個(gè)框架的入口文件,也就是說(shuō)所有的請(qǐng)求都要從它這里開(kāi)始。因?yàn)?index.php 源碼非常簡(jiǎn)潔,那么我們直接放一張?jiān)创a截圖,按著截圖說(shuō)一下源碼。 showImg(https://segmentfault.com/img/re...

    _ivan 評(píng)論0 收藏0
  • PHP中的pack和unpack函數(shù)

    摘要:鑒于文件讀寫(xiě)網(wǎng)絡(luò)編程,或者說(shuō)字節(jié)流處理的重要性,掌握這兩個(gè)函數(shù)是邁向高級(jí)編程的基礎(chǔ)。相比之下字節(jié)處理門庭冷落,相關(guān)函數(shù)寥寥無(wú)幾。上述是函數(shù)簡(jiǎn)單的使用場(chǎng)景,接下來(lái)分別介紹和函數(shù)。如其名,函數(shù)的工作是將數(shù)據(jù)按照格式打包成字節(jié)數(shù)組。 轉(zhuǎn)載請(qǐng)注明文章出處:https://tlanyan.me/php-pack-a... PHP有兩個(gè)重要的冷門函數(shù):pack和unpack。在網(wǎng)絡(luò)編程,讀寫(xiě)圖像...

    Lin_R 評(píng)論0 收藏0
  • LinuxCentOS基礎(chǔ)知識(shí)點(diǎn)總結(jié)

    摘要:之基礎(chǔ)知識(shí)點(diǎn)總結(jié)第一章常用命令所謂的命令一般就是指指令,有很多中類型,默認(rèn)的是,每一個(gè)都有自己的內(nèi)置命令,數(shù)量都不相同,也就幾十種。兩個(gè)點(diǎn)加一個(gè)斜線,表示上一級(jí)目錄。表示上兩級(jí)目錄。參數(shù)可以讓命令遞歸刪除目錄及其內(nèi)容,參數(shù)是,表示強(qiáng)制刪除。 前言 Linux之CentOS常用命令操作總結(jié)。 Linux之CentOS基礎(chǔ)知識(shí)點(diǎn)總結(jié) 第一章 Linux常用命令 所謂的Linux命令一般就是...

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

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

0條評(píng)論

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