Ⅰ 關於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如何自動創建文件夾和文件
//首先需要檢測b目錄是否存在
if(!is_dir('b/'))mkdir('b/');//如果不存在則創建
//在檢測b/目錄中是否存在c.php文件
if(!file_exists('b/c.php'))file_put_contents('b/c.php','d');//如果c.php不存在則創建,當然還可以使用$file=fopen('b/c.php','a+')的方式創建然後用fwrite('d',$file)寫入d
Ⅲ php創建目錄的方法
mkdir
(PHP 4, PHP 5, PHP 7)
mkdir — 新建目錄
1.說明
mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = FALSE [, resource $context ]]] ) : bool
嘗試新建一個由 pathname 指定的目錄。
2.參數
pathname
目錄的路徑。
mode
默認的 mode 是 0777,意味著最大可能的訪問權。有關 mode 的更多信息請閱讀 chmod() 頁面。
Note:
mode 在 Windows 下被忽略。
注意也許想用八進制數指定模式,也就是說該數應以零打頭。模式也會被當前的 umask 修改,可以用 umask() 來改變。
recursive
允許遞歸創建由 pathname 所指定的多級嵌套目錄。
context
Note: 在 PHP 5.0.0 中增加了對上下文(Context)的支持。有關上下文(Context)的說明參見 Streams。
3.返回值
成功時返回 TRUE, 或者在失敗時返回 FALSE。
4.範例如下圖
5.錯誤/異常
目錄已存在時,產生 E_WARNING錯誤。
如果因為許可權問題無法創建目錄,導致 E_WARNING錯誤。
Ⅳ 如何在php網站根目錄下建立自己想要的目錄
不建議這么做,首先如果這么做的話,你的用戶一多,就會在根目錄下生成太多的子目錄,影響FTP管理。建議你可以用user1_文件名 的方式保存上傳的文件。也可以用日期歸類來生成目錄。
Ⅳ 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如何建立文件夾
首先,確定你所要新建文件敬碼所在的目鉛稿孝錄許可權;建議設備為777。然後,新建文件的名稱建議使用絕對路徑。
復制代碼代碼如下:
<?php
$filename="test.txt";
$fp=fopen("$filename","w+");//打開文件指針,創建文件
if(!is_writable($filename)){
die("文件:".$filename."不可寫,請檢查!");
}
//fwrite($filename,"anythingyouwanttowriteto$filename."槐稿;
fclose($fp);//關閉指針