导航:首页 > 编程语言 > php创建目录递归

php创建目录递归

发布时间:2023-01-11 13:16:15

1. 如何在php网站根目录下建立自己想要的目录

不建议这么做,首先如果这么做的话,你的用户一多,就会在根目录下生成太多的子目录,影响FTP管理。建议你可以用user1_文件名 的方式保存上传的文件。也可以用日期归类来生成目录。

2. PHP 如何递归算法

一般来说,类似这种遍历输出所有文件,大多采用递归算法,这样程序显得比较简洁,其实际执行效率来说,并不见得比其他方法更好。

以下是示例:

function file_list($path)
{
if ($handle = opendir($path))//打开路径成功
{
while (false !== ($file = readdir($handle)))//循环读取目录中的文件名并赋值给$file
{
if ($file != "." && $file != "..")//排除当前路径和前一路径
{
if (is_dir($path."/".$file))
{
// echo $path.": ".$file."<br>";//去掉此行显示的是所有的非目录文件
file_list($path."/".$file);
}
else
{
echo $path.": ".$file."<br>";
}
}
}
}
}

3. 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错误。

4. php 递归遍历目录代码调试

文件系统中,"."代表此目录自身,".."代表上级目录。scandir取目录时,也会把这这两个特殊目录取出来,但一般情况下不用处理,只需要处理正常目录,所以要在if中排除掉。

5. 怎么在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这类的教学视频哦⊙∀⊙!,你可以去看看

6. 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也可以使用,不过这个方法会一次性获取单级目录下的所有文件,存放到数组里,如果目录里的文件比较多的话,会卡。

7. php如何实现递归遍历文件目录

只需要一个递归函数:

functionFolders($folder){
if(!is_dir($folder))returnfalse;

foreach(scandir($folder)AS$f){
if($f=='.'or$f=='..')continue;
echo$f,'<hr/>';
Folders($folder.'/'.$f);//递归调用
}

}


Folders('Test');

8. 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);

9. 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;
}
?>

10. 关于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创建目录递归相关的资料

热点内容
家庭宽带如何连接服务器 浏览:117
汽车高压泵解压 浏览:770
上门正骨用什么app 浏览:758
安卓为什么免费使用 浏览:397
加密货币都有哪些平台 浏览:625
python和matlab难度 浏览:388
python爬虫很难学么 浏览:572
小米解压积木可以组成什么呢 浏览:816
为什么滴滴出行app还能用 浏览:564
怎么升级手机android 浏览:922
php权威编程pdf 浏览:994
扣扣加密技巧 浏览:720
苹果如何创建服务器错误 浏览:497
软考初级程序员大题分值 浏览:475
js压缩视频文件 浏览:580
linux如何通过命令创建文件 浏览:991
应用加密app还能访问应用嘛 浏览:435
安卓怎么用支付宝交违章罚款 浏览:667
php面向对象的程序设计 浏览:506
数据挖掘算法书籍推荐 浏览:896