php遞歸目錄,php遞歸創建目錄

本文目錄一覽:

php關於遞歸創建練級目錄,為什麼少輸出一個目錄

if(!file_exists(dirname($path))){//判斷上一級目錄是否存在

//mkdir($path,0777,true);

//echo ‘yes’;

check(dirname($path));//當返回到./當前目錄時存在,那麼依次進行下一步創建文件夾操作

mkdir(dirname($path),0777);

}

改為

if(!file_exists(dirname($path))){//判斷上一級目錄是否存在

//mkdir($path,0777,true);

//echo ‘yes’;

check(dirname($path));//當返回到./當前目錄時存在,那麼依次進行下一步創建文件夾操作

}

mkdir(dirname($path),0777);

php上傳文件,創建遞歸目錄的實例代碼

複製代碼

代碼如下:

?php

$uid=$_REQUEST[‘uid’];

$avatar

=

‘D:/avic/discuz/uc_server/data/avatar/’.get_avatar($uid,

$size,

$type);

$dir=dirname($avatar);

//創建目錄成功後移動臨時文件

if(mkdirs($dir)){

if($_FILES[“pic”][“error”]

=

0){

if(move_uploaded_file($_FILES[‘pic’][‘tmp_name’],$avatar)){

$errorcode=1;

}else{

$errorcode=0;

$errormsg=”文件移動失敗”;

}

}else{

$errorcode=0;

$errormsg=$_FILES[‘pic’][‘error’];

}

}

$back=array(“errorcode”=$errorcode,’errormsg’=$errormsg);

echo

json_encode($back);

//返回圖片要存儲的路徑

function

get_avatar($uid,

$size

=

‘middle’,

$type

=

”)

{

$size

=

in_array($size,

array(‘big’,

‘middle’,

‘small’))

?

$size

:

‘middle’;

$uid

=

abs(intval($uid));

$uid

=

sprintf(“%09d”,

$uid);

$dir1

=

substr($uid,

0,

3);

$dir2

=

substr($uid,

3,

2);

$dir3

=

substr($uid,

5,

2);

$typeadd

=

$type

==

‘real’

?

‘_real’

:

”;

return

$dir1.’/’.$dir2.’/’.$dir3.’/’.substr($uid,

-2).$typeadd.”_avatar_$size.jpg”;

}

//遞歸創建目錄,若傳的$dir不是絕對路徑,則會和運行此方法的目錄同級

function

mkdirs($dir){

if(!is_dir($dir)){

if(!mkdirs(dirname($dir))){

return

false;

}

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

return

false;

}

 }

return

true;

}

?

php如何實現遞歸遍歷文件目錄

只需要一個遞歸函數:

function Folders($folder) {

if (!is_dir($folder)) return false;

foreach (scandir($folder) AS $f) {

if ($f == ‘.’ or $f == ‘..’) continue;

echo $f, ‘hr/’;

Folders($folder . ‘/’ . $f);    // 遞歸調用

}

}

Folders(‘Test’);

怎麼在php中創建一個遞歸創建目錄的封裝函數

:遞歸創建目錄,此種方法是我目前感覺比較好的方法。

function mkDirs($dir){ if(!is_dir($dir)){ if(!mkDirs(dirname($dir))){ return false; } if(!mkdir($dir,0777)){ return false; } } return true; } mkDirs(‘1/2/3/’);我還是推薦你去後盾人看看,裡面有很對關於php這類的教學視頻哦⊙∀⊙!,你可以去看看

關於php遞歸函數創建級聯目錄的困惑

mkdir1剛進去就是判斷$dir存不存在,a/b/c/d/e說白了就是判斷有沒有e文件夾

如果沒有 繼續dirname($dir) 判斷a/b/c/d路徑的d文件夾有沒有

如果沒有 繼續dirname($dir) 判斷a/b/c路徑的c文件夾有沒有

依此類推直到

dirname($dir) 判斷a路徑的時候 不存在執行當前遞歸層的mkdir($dir) 創建a

存在則return,然後執行當前遞歸層上一級的mkdir($dir) 創建a/b

之後繼續上一級的mkdir($dir) 創建a/b/c

直到創建完a/b/c/d/e 遞歸結束

php遞歸獲取目錄內文件封裝類分享

php遞歸獲取目錄內文件封裝類分享,可以遞歸子目錄

代碼如下:

代碼如下:

function

readFileFromDir($dir)

{

if

(!is_dir($dir))

{

return

false;

}

//打開目錄

$handle

=

opendir($dir);

while

(($file

=

readdir($handle))

!==

false)

{

//排除掉當前目錄和上一個目錄

if

($file

==

“.”

||

$file

==

“..”)

{

continue;

}

$file

=

$dir

.

DIRECTORY_SEPARATOR

.

$file;

//如果是文件就列印出來,否則遞歸調用

if

(is_file($file))

{

print

$file

.

‘br

/’;

}

elseif

(is_dir($file))

{

readFileFromDir($file);

}

}

}

調用方式:

代碼如下:

$dir

=

‘/home/www/test’;

readFileFromDir($dir);

查看php手冊的話,還有一個方法scandir也可以使用,不過這個方法會一次性獲取單級目錄下的所有文件,存放到數組裡,如果目錄里的文件比較多的話,會卡。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/308450.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-03 14:49
下一篇 2025-01-03 14:49

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Rclone複製所有目錄

    如果你需要將本地文件複製到雲端,或者從雲端複製文件到本地,Rclone是一個非常好的選擇。本文將介紹如何使用Rclone複製所有目錄。 一、安裝Rclone 首先,你需要在你的機器…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 台階走法遞歸

    台階走法遞歸是一個經典的遞歸問題,在計算機演算法中有著廣泛的應用。本篇文章將從遞歸的思想出發,詳細分析如何解決這個問題。 一、遞歸基礎知識 遞歸是指一個函數直接或間接地調用自身。遞歸…

    編程 2025-04-29
  • 二級考級舞蹈大全目錄

    本文將從以下多個方面對二級考級舞蹈大全目錄進行詳細闡述。 一、目錄結構 二級考級舞蹈大全目錄主要分為三級,即一級目錄、二級目錄和三級目錄。其中,一級目錄為舞蹈類型,二級目錄為舞蹈名…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • Python目錄怎麼打開

    Python是一種高級編程語言,以其易讀、易擴展和簡潔高效的特徵,目前得到了眾多程序開發者的認可。Python的應用已經擴展到了人工智慧、Web開發、數據分析、自動化測試等領域。本…

    編程 2025-04-28
  • Python遞歸累加求和

    Python遞歸累加求和是一種常見的遞歸演算法,在解決一些數學問題或者邏輯問題時常常被使用。下面我們將從多個方面來詳細闡述這個演算法。 一、基本概念 遞歸是一種在函數中調用自身的演算法,…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 不從skel目錄複製文件的方法

    對於開發工程師而言,我們經常需要使用一些預定義的目錄結構來組織我們的項目文件。skel作為一個經典的目錄結構,包含了許多常用的文件和目錄。 一、了解skel目錄 skel目錄通常位…

    編程 2025-04-28

發表回復

登錄後才能評論