龍巖易富通網(wǎng)絡(luò)科技有限公司

龍巖小程序開發(fā),龍巖分銷系統(tǒng)

PHP創(chuàng)建多級文件夾

2015.09.10 | 452閱讀 | 0條評論 | php

php函數(shù)中自帶mkdir就可以創(chuàng)建文件夾,但是只能創(chuàng)建一級目錄。如果創(chuàng)建aa/bb/cc多級目錄,是不支持的。 以下兩種方法能夠解決: 第一種PHP創(chuàng)建文件夾(用mkdirs來產(chǎn)生多級父級) [php]function mkdirs($dir, $mode = 0777) { if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE; if (!mkdirs(dirname ($dir), $mode)) return FALSE; return @mkdir($dir, $mode); } [/php]

    大致流程為:(1)先用is_dir判斷是否已是一個文件夾,如果是則返回TRUE。如沒有(或者不是文件夾),則試著創(chuàng)建它,當然有可以父級不存在,那mkdir直接就創(chuàng)不成功,但也為不報錯,所以就用@來抑止報非致命錯誤。 (2)如果傳參數(shù)都不滿足條件,那么就進入第二個if語句,先是取得路徑中的目錄部分,當然有可能是不存在的多級父級,所以用了mkdirs()來先創(chuàng)建父級,如果成功(不成功返回FALSE),那么再用mkdir來創(chuàng)建最終的目錄了。
第二種PHP創(chuàng)建文件夾 [php] function create_folders($dir){ return is_dir($dir) or ( create_folders(dirname($dir)) and mkdir($dir, 0777)); } [/php] 1 大致流程:得到路徑后,先判斷是否已是一個有效的文件目錄,如是則返回,結(jié)束程序。如果不是,(由于這里用了OR作先擇性的條件,即只要滿足其中一個條件就行),則遞歸再調(diào)用自身,并且傳入的路徑中,少一級目錄。這樣來先回到上級有的父級目錄中,再用mkdir來創(chuàng)建下一級的。 第三種PHP創(chuàng)建文件夾(用新的參數(shù)來產(chǎn)生多級父級) 用PHP5中自帶的mkdir 中的一個新的參數(shù) recursive ,通過設(shè)置 recursive 為 true 可以實現(xiàn)遞歸創(chuàng)建目錄的目的,但是對PHP4就不行了。 [php] mkdir("aa/bb/cc",0777,true); [/php]

贊 (

發(fā)表評論