国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
PHP遞歸創(chuàng)建多級目錄,php遞歸
首頁 php教程 php手冊 PHP遞歸創(chuàng)建多級目錄,php遞歸

PHP遞歸創(chuàng)建多級目錄,php遞歸

Jun 13, 2016 am 08:51 AM
php 目錄 遞迴

PHP遞歸創(chuàng)建多級目錄,php遞歸

我的第一個(gè)感覺就是用遞歸創(chuàng)建,具體思路如下:

function Directory($dir){
    if(is_dir($dir) || @mkdir($dir,0777)){ //查看目錄是否已經(jīng)存在或嘗試創(chuàng)建,加一個(gè)@抑制符號是因?yàn)榈谝淮蝿?chuàng)建失敗,會報(bào)一個(gè)“父目錄不存在”的警告。

        echo $dir."創(chuàng)建成功<br>";  //輸出創(chuàng)建成功的目錄

    }else{

        $dirArr=explode('/',$dir); //當(dāng)子目錄沒創(chuàng)建成功時(shí),試圖創(chuàng)建父目錄,用explode()函數(shù)以'/'分隔符切割成一個(gè)數(shù)組
        array_pop($dirArr); //將數(shù)組中的最后一項(xiàng)(即子目錄)彈出來,
        $newDir=implode('/',$dirArr); //重新組合成一個(gè)文件夾字符串
        Directory($newDir); //試圖創(chuàng)建父目錄
        if(@mkdir($dir,0777)){
            echo $dir."創(chuàng)建成功<br>";

        } //再次試圖創(chuàng)建子目錄,成功輸出目錄名
    }
}

Directory("A/B/C/D/E/F");

輸出結(jié)果如圖:

但是可以看得出來,寫得也太麻煩了,在手冊里翻看文件函數(shù),看到一個(gè)dirname()函數(shù),其原型如下:

string dirname ( string $path )

給出一個(gè)包含有指向一個(gè)文件的全路徑的字符串,本函數(shù)返回去掉文件名后的目錄名。

在 Windows 中,斜線(/)和反斜線(\)都可以用作目錄分隔符。在其它環(huán)境下是斜線(/)。

可以稍稍地優(yōu)化一下:

function Directory($dir){

    if(is_dir($dir) || @mkdir($dir,0777)){ 

        echo $dir."創(chuàng)建成功<br>";  

    }else{

        Directory(dirname($dir));

        if(@mkdir($dir,0777)){

            echo $dir."創(chuàng)建成功<br>";

        }

    }

}

效果一樣。
之后我在在網(wǎng)上搜一下答案,找到一個(gè)異常精辟的

function Directory( $dir ){  

   return  is_dir ( $dir ) or Directory(dirname( $dir )) and  mkdir ( $dir , 0777);

}

現(xiàn)在來解釋一下整個(gè)函數(shù):

先介紹一下PHP中邏輯運(yùn)算符的優(yōu)先級順序:&& > || > and > or,即符號型>字母型,AND型>OR型,所以函數(shù)體可以看成:

is_dir ( $dir )? or? (Directory(dirname( $dir ))? and?? mkdir ( $dir , 0777));

先判斷目標(biāo)目錄是否存在,若存在,依or的短路特性,后面的整體被短路,跳過執(zhí)行;若目標(biāo)目錄不存在,則執(zhí)行后面的函數(shù)體:

Directory(dirname( $dir ))? and?? mkdir ( $dir , 0777)

我考慮了一下先進(jìn)行遞歸的用意:先執(zhí)行遞歸,意在確認(rèn)其父目錄(dirname($dir))都已經(jīng)創(chuàng)建完畢,使后面的mkdir()函數(shù)不會創(chuàng)建子目錄時(shí)找不到父目錄發(fā)出警告。

進(jìn)入遞歸深處后,確認(rèn)最深處的根目錄存在后,從根目錄向下依次創(chuàng)建目錄。

最后,建議要找工作的親們,去網(wǎng)上找些大公司面試題做一下,畢竟他們考得較為綜合較深,在學(xué)習(xí)知識的時(shí)候,也刷一下題,另外也一定要做一下,因?yàn)楹苋菀籽鄹呤值?,一開始的函數(shù),我優(yōu)化了好幾遍才能正常使用。

這就是一道PHP遞歸創(chuàng)建多級目錄面試題目,以后小編會再找些有意思的面試題跟大家分享。

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

初學(xué)者的PHP運(yùn)營商 初學(xué)者的PHP運(yùn)營商 Jul 17, 2025 am 04:17 AM

掌握PHP常用運(yùn)算符能應(yīng)對多數(shù)開發(fā)場景,主要包括:1.算術(shù)運(yùn)算符( 、-、、/、%)用於數(shù)學(xué)計(jì)算,支持變量動態(tài)運(yùn)算,但需注意自動類型轉(zhuǎn)換可能引發(fā)的問題;2.比較運(yùn)算符(==、===、!=、>、

開始使用PHP:您的第一步 開始使用PHP:您的第一步 Jul 17, 2025 am 04:17 AM

TostartwithPHP,firstsetupalocalserverenvironmentusingtoolslikeXAMPPorMAMP,thenwriteabasicPHPscriptusingechotodisplaytext,andfinallyintegratePHPwithHTMLfordynamiccontent.1.ChooseatoollikeXAMPPforWindowsorMAMPforMactoinstallApache,MySQL,andPHP.2.PlaceP

PHP評論類型解釋了 PHP評論類型解釋了 Jul 18, 2025 am 04:29 AM

PHP有三種常見的註釋方式,分別是單行註釋、多行註釋和文檔塊註釋。 1.單行註釋使用//或#,適合簡短說明,可置於代碼行末或單獨(dú)一行;2.多行註釋以/開頭並以/結(jié)尾,適合詳細(xì)說明如函數(shù)功能或版本記錄;3.文檔塊註釋以/**開頭,結(jié)合@param、@return等標(biāo)籤,能被IDE和工具識別,用於生成代碼提示和文檔。此外,建議為函數(shù)和類編寫註釋,尤其公共方法;在復(fù)雜邏輯處添加解釋性註釋;避免無意義註釋;不提交被註釋掉的調(diào)試代碼。掌握這些註釋方式和使用建議,有助於提升代碼可讀性和維護(hù)效率。

從零到英雄:全面的PHP評論教程 從零到英雄:全面的PHP評論教程 Jul 18, 2025 am 04:31 AM

PHP中添加註釋有三種方式://、#和//,其中//最常用。註釋能提升代碼可讀性和維護(hù)性,應(yīng)解釋“為什麼”而非“做了什麼”,同時(shí)需保持更新。函數(shù)和類應(yīng)註明功能及輸入輸出參數(shù),內(nèi)聯(lián)註釋可用於解釋複雜邏輯。合理使用註釋有助於團(tuán)隊(duì)協(xié)作與後期調(diào)試,避免過多或過時(shí)的註釋。

故障排除PHP安裝問題 故障排除PHP安裝問題 Jul 18, 2025 am 04:33 AM

安裝PHP常見問題有四種,分別是:1.PHP無法啟動或報(bào)錯(cuò),應(yīng)檢查php.ini配置錯(cuò)誤並用php-t驗(yàn)證;2.安裝擴(kuò)展失敗時(shí)確認(rèn)底層依賴是否安裝完整;3.Web服務(wù)器無法解析PHP文件需檢查PHP-FPM是否啟用並與服務(wù)器配置匹配;4.多版本衝突可通過whichphp和php-v查看當(dāng)前使用版本並調(diào)整環(huán)境變量或切換工具。遇到問題應(yīng)逐步排查配置和日誌以定位原因。

寫乾淨(jìng)的PHP評論 寫乾淨(jìng)的PHP評論 Jul 18, 2025 am 04:36 AM

註釋應(yīng)說明“為什麼”而非“做了什麼”,如解釋業(yè)務(wù)原因而非重複代碼操作;2.在復(fù)雜邏輯前加總覽性註釋,簡要說明流程步驟,幫助建立整體印象;3.給“奇怪”代碼加註釋,解釋非常規(guī)寫法的意圖,避免誤解為bug;4.註釋格式建議簡潔為主,單行用//,函數(shù)/類用/*.../,保持統(tǒng)一風(fēng)格;5.避免註釋與代碼不同步、註釋過長或註釋掉代碼未刪除等問題,確保註釋真正提升代碼可讀性和維護(hù)性。

PHP的簡單指南 PHP的簡單指南 Jul 18, 2025 am 04:37 AM

這篇文章回答了新手學(xué)習(xí)PHP的幾個(gè)關(guān)鍵問題。一,快速上手基礎(chǔ)語法的方法是通過實(shí)踐變量、條件判斷和循環(huán)等基本結(jié)構(gòu),例如使用$定義變量、echo輸出內(nèi)容、if判斷條件;二,PHP與HTML結(jié)合使用的方式是將PHP代碼嵌入HTML中,用包裹,並註意在支持PHP的服務(wù)器環(huán)境下運(yùn)行;三,處理表單提交和數(shù)據(jù)庫連接的流程包括:前端提交表單、PHP接收數(shù)據(jù)、驗(yàn)證數(shù)據(jù)、使用mysqli或PDO等方式連接數(shù)據(jù)庫並執(zhí)行插入操作,同時(shí)推薦使用ORM工具提高安全性與便捷性。文章強(qiáng)調(diào)學(xué)習(xí)PHP要注重動手實(shí)踐,逐步積累經(jīng)驗(yàn)。

PHP字符串串聯(lián) PHP字符串串聯(lián) Jul 18, 2025 am 04:40 AM

PHP字符串拼接使用點(diǎn)號.操作符,如$a="Hello".$"World";雙引號中可直接嵌入變量,如echo"Hello,$name";拼接大量內(nèi)容時(shí)建議初始化空字符串後用.=追加,或用數(shù)組 implode()優(yōu)化性能;常見錯(cuò)誤包括單引號未解析變量、漏加標(biāo)點(diǎn)符號、變量未賦值等。需注意1.點(diǎn)號用於連接任意字符串2.雙引號支持變量替換但不解析複雜表達(dá)式3.循環(huán)拼接推薦先初始化再逐步添加4.避免混用引號導(dǎo)致變量未解析。

See all articles