如何在PHP項目中利用mkdir實現一個文件夾創建功能-創新互聯

這期內容當中小編將會給大家帶來有關如何在PHP項目中利用mkdir實現一個文件夾創建功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創新互聯公司自2013年起,是專業互聯網技術服務公司,擁有項目成都網站建設、網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元藍田做網站,已為上家服務,為藍田各地企業和個人服務,聯系電話:028-86922220

說明


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

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

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

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

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

例 1. mkdir() 例子

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


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


例 2. mkdir() 例子

$dir = iconv("UTF-8", "GBK", "public/log");
if (!file_exists($dir)){
	mkdir ($dir,0777,true);
	echo '創建文件夾log成功';
} else {
	echo '需創建的文件夾log已經存在';
}

iconv方法是為了防止中文亂碼,保證可以創建識別中文目錄,不用iconv方法格式的話,將無法創建中文目錄


mkdir方法的第一個參數是要創建的目錄路徑,第二個參數是指創建目錄的權限,在windows系統下該參數會被忽略,第三個參數是指是否創建多級目錄,默認為false
參考鏈接:/tupian/20230522/5991365.html 自 PHP 5.0.0 rmdir() 也可用于某些 URL 封裝協議。參見附錄 N 的列表看看 rmdir() 支持哪些 URL 封裝協議。

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

注意: recursive 參數是 PHP 5.0.0 添加的。

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

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

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

2 自己寫一個遞歸創建多級目錄。

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

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

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()的區別,以及,is_dir和dirname():


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


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


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


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

2 大致流程為:

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

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

第二種(說明:此方案是相當的精簡,那是相當的不錯的方案,推薦使用它)

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


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

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

總結:

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

2 自己寫的方法中,用mkdirs來創建多級父級目錄方式

3 仍然用mkdir很巧妙的來創建

上述就是小編為大家分享的如何在PHP項目中利用mkdir實現一個文件夾創建功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創新互聯行業資訊頻道。

文章名稱:如何在PHP項目中利用mkdir實現一個文件夾創建功能-創新互聯
鏈接分享:http://m.kartarina.com/article44/cdcohe.html

成都網站建設公司_創新互聯,為您提供ChatGPT、手機網站建設、標簽優化域名注冊網站營銷、移動網站建設

廣告

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

微信小程序開發
主站蜘蛛池模板: 精品久久久久久无码不卡| 伊人久久无码中文字幕| 免费看成人AA片无码视频吃奶| 无码人妻精品一区二区三区9厂 | 亚洲精品无码日韩国产不卡?V| 亚洲av无码无在线观看红杏| 亚洲精品无码不卡在线播放| 亚洲午夜国产精品无码| 人妻精品久久无码区| 亚洲中文字幕无码一区 | 久久久久无码精品亚洲日韩| 亚洲日韩精品无码AV海量| 无码av中文一二三区| 久久午夜夜伦鲁鲁片免费无码影视| 免费无码又爽又刺激一高潮| 亚洲爆乳少妇无码激情| 亚洲的天堂av无码| 中文字幕无码av激情不卡久久 | 亚洲aⅴ无码专区在线观看春色 | 国产精品无码一区二区三区毛片| 在线观看片免费人成视频无码| 一级毛片中出无码| 亚洲av永久无码天堂网| 18禁免费无码无遮挡不卡网站| 亚洲色无码一区二区三区| 精品无码国产自产拍在线观看蜜 | 精品亚洲av无码一区二区柚蜜| 久久久久亚洲Av无码专| 日韩精品无码中文字幕一区二区 | 在线观看亚洲AV每日更新无码| 亚洲av永久无码精品表情包| 成人无码AV一区二区| 97无码人妻福利免费公开在线视频 | 久久精品无码专区免费东京热| 亚洲人成人无码网www电影首页 | 玖玖资源站无码专区| 日日麻批免费40分钟无码| 久久久无码精品亚洲日韩蜜桃| 少妇人妻无码专区视频| 久久亚洲精品成人无码网站 | 亚州AV综合色区无码一区|