成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PHPmkdir如何創(chuàng)建多級目錄

PHPmkdir如何創(chuàng)建多級目錄

大寧網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)。

首先,我們來說明一下可能很多朋友認為只要給一個路徑,mkdir就可以創(chuàng)建文件夾,其實并不是那樣,單個的MKDIR只能創(chuàng)建一級目錄,對于多級的就不行了,那如何用mkdir來創(chuàng)建呢?

手冊上的有關mkdir的描述,如下:

說明

bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

嘗試新建一個由 pathname 指定的目錄。

注意:也許想用八進制數(shù)指定模式,也就是說該數(shù)應以零打頭,模式也會被當前的 umask 修改,可以用 umask() 來改變。

注意:mode 在 Windows 下被忽略。自 PHP 4.2.0 起成為可選項。

默認的 mode 是 0777,意味著最大可能的訪問權。有關 mode 的更多信息請閱讀 chmod() 頁面。

例 1. mkdir() 例子

<?php
mkdir("/path/to/my/dir", 0700);
?>

如果成功則返回 TRUE,失敗則返回 FALSE。

注意: 自 PHP 5.0.0 rmdir() 也可用于某些 URL 封裝協(xié)議。參見附錄 N 的列表看看 rmdir() 支持哪些 URL 封裝協(xié)議。

注意: 對 context 的支持是 PHP 5.0.0 添加的。有關 context 的說明見參考 CLX, Stream Functions。

注意: recursive 參數(shù)是 PHP 5.0.0 添加的。

注意: 當安全模式被激活時,PHP 將檢查被操作的目錄是否和正在執(zhí)行的腳本有相同的 UID(所有者)。

以上是PHP5手冊上的描述信息,即你可以這樣:mkdir('./test',0777)就能創(chuàng)建一個文件夾了。但是如何遞歸創(chuàng)建多級目錄呢?

其方式有:

1、PHP5 下創(chuàng)建目錄函數(shù) mkdir 增加了一個新的參數(shù) recursive ,通過設置 recursive 為 true 可以實現(xiàn)遞歸創(chuàng)建目錄的目的,但是對PHP4就不行了。

2、自己寫一個遞歸創(chuàng)建多級目錄。

這里,我對第二種方式作一點說明,也有兩種方式,如下:

第一種(用mkdirs來產(chǎn)生多級父級)

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

說明:
1、首先 簡單說一下mkdir()與mkdirs()的區(qū)別,以及,is_dir和dirname():

mkdir() 只能在已經(jīng)存在的目錄中創(chuàng)建創(chuàng)建文件夾(即父級必須有才行)。

mkdirs() 可以在不存在的目錄中創(chuàng)建文件夾。諸如:a//b,既可以創(chuàng)建多級目錄。

dirname() 是返回路徑中的目錄部分。

is_dir() 用于判斷給出的文件名是否是一個有效的目錄

2、大致流程為:

(1)先用is_dir判斷是否已是一個文件夾,如果是則返回TRUE。如沒有(或者不是文件夾),則試著創(chuàng)建它,當然有可以父級不存在,那mkdir直接就創(chuàng)不成功,但也為不報錯,所以就用@來抑止報非致命錯誤。

(2)如果傳參數(shù)都不滿足條件,那么就進入第二個if語句,先是取得路徑中的目錄部分,當然有可能是不存在的多級父級,所以用了mkdirs()來先創(chuàng)建父級,如果成功(不成功返回FALSE),那么再用mkdir來創(chuàng)建最終的目錄了。
好了,以上就是第一種方案。

第二種(說明:此方案是相當?shù)木?,那是相當?shù)牟诲e的方案,推薦使用它)

function create_folders($dir){
       return is_dir($dir) or (create_folders(dirname($dir)) and mkdir($dir, 0777));
 }

說明: 1 大致流程: 得到路徑后,先判斷是否已是一個有效的文件目錄,如是則返回,結(jié)束程序。如果不是,(由于這里用了OR作先擇性的條件,即只要滿足其中一個條件就行),則遞歸再調(diào)用自身,并且傳入的路徑中,少一級目錄。這樣來先回到上級有的父級目錄中,再用mkdir來創(chuàng)建下一級的。

好了,以上就是用PHP來創(chuàng)建文件夾(以及多級文件夾)的方法。^_^

總結(jié):

1、用PHP5中自帶的mkdir 中的一個新的參數(shù) recursive ,通過設置 recursive 為 true 可以實現(xiàn)遞歸創(chuàng)建目錄的目的,但是對PHP4就不行了。

2、自己寫的方法中,用mkdirs來創(chuàng)建多級父級目錄方式

3、仍然用mkdir很巧妙的來創(chuàng)建

以上就是php中mkdir的使用方法介紹的詳細內(nèi)容,更多請關注創(chuàng)新互聯(lián)其它相關文章!

網(wǎng)站題目:PHPmkdir如何創(chuàng)建多級目錄
URL鏈接:http://jinyejixie.com/article48/iispep.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、動態(tài)網(wǎng)站、品牌網(wǎng)站設計建站公司、外貿(mào)建站、網(wǎng)站導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設
苏州市| 寻乌县| 虞城县| 盐池县| 陈巴尔虎旗| 化德县| 长治市| 富宁县| 电白县| 湖州市| 石泉县| 米易县| 洞头县| 清原| 昭通市| 上林县| 洪洞县| 六枝特区| 白玉县| 东光县| 商河县| 河西区| 天门市| 马尔康县| 玉田县| 庄浪县| 微博| 辽阳市| 莲花县| 南澳县| 昭平县| 修武县| 余干县| 南皮县| 越西县| 饶河县| 天祝| 伊吾县| 石屏县| 长海县| 车险|