我也不太清楚有没有。不过可以自己写一个函数实现。function _mkdir($dir)
{
if($dir=="") return;
if(@mkdir($dir)==false)
{
if($parent=preg_replace("/^(.*?)\/[^\/]+$/","$1",$dir))
{
_mkdir($parent);
mkdir($dir);
}
}
}
{
if($dir=="") return;
if(@mkdir($dir)==false)
{
if($parent=preg_replace("/^(.*?)\/[^\/]+$/","$1",$dir))
{
_mkdir($parent);
mkdir($dir);
}
}
}
{
if($dir=="") return;
if(@mkdir($dir)==false)
{
if(preg_match("/^(.+?)\/[^\/]+$/",$dir,$parent))
{
_mkdir($parent[1]);
mkdir($dir);
}
}
}
/html/12/123 这个目录
但
只有
/html 是存在的。
我要先在 /html 下创建 12 目录
再在 /html/12 下创建 123 目录
{
if($dir=="") return;
if(@mkdir($dir)==false)
{
if(preg_match("/^(.+?)\/[^\/]*$/",$dir,$parent))
{
_mkdir($parent[1]);
mkdir($dir);
}
}
}
----------------
我在 Windows 系统
function MakeDir($dir) {
if (file_exists($dir)) return;
// 分解成两个部分
$dir = str_replace('\\','/',$dir);
$p = strrpos($dir, '/');
$parent = substr($dir,0,$p);
//$d = substr($f,$p-strlen($f)+1); if (file_exists($parent)) {
mkdir($dir,0777);
}
else {
MakeDir($parent);
mkdir($dir,0777);
}}
$f = "c:\\12\\212\\212\\212\\21\\21\212\\32";
明白加一个就OK了。 $dir = str_replace('\\','/',$dir);
----------
是。因为我是用 dirname() 来得到的路径。在 windows 下默为 C:\ 这样的格式。
我没有替换,所以有了这个问题。多谢了哈。