最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP mkdir創(chuàng)建文件夾實現(xiàn)方法解析

 更新時間:2020年11月13日 09:49:47   作者:FC_LAMP  
這篇文章主要介紹了PHP mkdir創(chuàng)建文件夾實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

在開始之前,我先說明一下,可能許多朋友與我一樣認(rèn)為只要給一個路徑,mkdir就可以創(chuàng)建文件夾,其它不是那樣,單個的MKDIR只能創(chuàng)建一級目錄,對于多級的就不行了,那如何用mkdir來創(chuàng)建呢?先我抄一段手冊上的有關(guān)mkdir的描述,如下:

說明

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

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

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

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

默認(rèn)的 mode 是 0777,意味著最大可能的訪問權(quán)。有關(guān) 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 '創(chuàng)建文件夾log成功';
} else {
	echo '需創(chuàng)建的文件夾log已經(jīng)存在';
}

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

mkdir方法的第一個參數(shù)是要創(chuàng)建的目錄路徑,第二個參數(shù)是指創(chuàng)建目錄的權(quán)限,在windows系統(tǒng)下該參數(shù)會被忽略,第三個參數(shù)是指是否創(chuàng)建多級目錄,默認(rèn)為false
參考鏈接:https://www.cnblogs.com/modou/p/5991365.html

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

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

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

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

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

1 PHP5 下創(chuàng)建目錄函數(shù) mkdir 增加了一個新的參數(shù) recursive ,通過設(shè)置 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)建它,當(dāng)然有可以父級不存在,那mkdir直接就創(chuàng)不成功,但也為不報錯,所以就用@來抑止報非致命錯誤。

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

第二種(說明:此方案是相當(dāng)?shù)木啠鞘窍喈?dāng)?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 ,通過設(shè)置 recursive 為 true 可以實現(xiàn)遞歸創(chuàng)建目錄的目的,但是對PHP4就不行了。

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • PHP中用hash實現(xiàn)的數(shù)組

    PHP中用hash實現(xiàn)的數(shù)組

    今天回顧學(xué)習(xí)了PHP中變量實現(xiàn)的方法,在瀏覽其源碼是發(fā)現(xiàn)在PHP中所有的數(shù)據(jù)類型通過一個union存儲。php語言是弱類型語言,其實現(xiàn)中通過記錄變量的類型和值來實現(xiàn)其管理。
    2011-07-07
  • PHP圖像處理 imagestring添加圖片水印與文字水印操作示例

    PHP圖像處理 imagestring添加圖片水印與文字水印操作示例

    這篇文章主要介紹了PHP圖像處理 imagestring添加圖片水印與文字水印操作,結(jié)合實例形式分析了PHP使用imagestring添加圖片水印與文字水印具體操作步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2020-02-02
  • PHP數(shù)據(jù)過濾的方法

    PHP數(shù)據(jù)過濾的方法

    關(guān)于如何確保數(shù)據(jù)過濾無法被繞過有各種各樣的觀點,今天我們就來看看PHP的數(shù)據(jù)過濾,對你一定會有幫助的。
    2013-10-10
  • PHP利用ffmpeg獲取音頻、視頻的詳細(xì)信息

    PHP利用ffmpeg獲取音頻、視頻的詳細(xì)信息

    這篇文章給大家介紹了使用PHP利用ffmpeg獲取音頻、視頻的詳細(xì)信息,音視頻總時長、碼率、視頻分辨率、音頻編碼、音頻采樣頻率、實際播放時間、文件大小,文中給出詳細(xì)的代碼示例,具有一定的參考價值,需要的朋友可以參考下
    2024-01-01
  • PHP處理excel cvs表格的方法實例介紹

    PHP處理excel cvs表格的方法實例介紹

    PHP處理excel cvs表格想必有很多朋友對此還是很陌生的吧,下面以實例為大家介紹下,感興趣的朋友可以參考下哈,希望對你有所幫助
    2013-05-05
  • PHP 使用MySQL管理Session的回調(diào)函數(shù)詳解

    PHP 使用MySQL管理Session的回調(diào)函數(shù)詳解

    本篇文章文章是對PHP中使用MySQL管理Session的回調(diào)函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP實現(xiàn)異步定時多任務(wù)消息推送

    PHP實現(xiàn)異步定時多任務(wù)消息推送

    在 PHP 中實現(xiàn)異步定時多任務(wù)消息推送的方式有多種,其中一種常用的方式是使用異步任務(wù)隊列,這篇文章主要介紹了這一方法的具體實現(xiàn),需要的可以參考一下
    2023-04-04
  • php計算數(shù)組相同值出現(xiàn)次數(shù)的代碼(array_count_values)

    php計算數(shù)組相同值出現(xiàn)次數(shù)的代碼(array_count_values)

    這篇文章主要介紹了php計算數(shù)組相同值出現(xiàn)次數(shù)的代碼,需要的朋友可以參考下
    2015-01-01
  • php插件功能實現(xiàn)方法介紹

    php插件功能實現(xiàn)方法介紹

    這篇文章主要介紹了php插件功能實現(xiàn)方法,主要包括php開發(fā)插件使用實例、應(yīng)用技巧、基本知識點總結(jié)和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下
    2022-11-11
  • PHP基于關(guān)聯(lián)數(shù)組20行代碼搞定約瑟夫問題示例

    PHP基于關(guān)聯(lián)數(shù)組20行代碼搞定約瑟夫問題示例

    這篇文章主要介紹了PHP基于關(guān)聯(lián)數(shù)組20行代碼搞定約瑟夫問題,結(jié)合具體實例分析了php使用關(guān)聯(lián)數(shù)組解決約瑟夫問題的相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11

最新評論

常德市| 孝昌县| 桦南县| 徐汇区| 曲靖市| 赤峰市| 黄山市| 乌兰县| 衡南县| 延吉市| 七台河市| 大同市| 青阳县| 阳曲县| 资源县| 句容市| 麻江县| 寿阳县| 海阳市| 布拖县| 收藏| 寻乌县| 贡嘎县| 娱乐| 永春县| 旬邑县| 金平| 库伦旗| 漠河县| 项城市| 驻马店市| 克东县| 通化市| 济南市| 山东省| 大兴区| 邛崃市| 武穴市| 墨玉县| 错那县| 淮南市|