Ⅰ 关于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);//关闭指针