喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

上一主题 下一主题
 15  1/2  1  2  > 
     
标题: 多级目录创建函数  
  本主题被作者加入到他/她的 Blog 中  
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
多级目录创建函数

可以一下子多级目录的路径,创建成功或文件已存在返回true
mkpath('../hml/a/b/c/d/e');

<?php
function mkpath($mkpath,$mode=0777){
        
$path_arr=explode('/',$mkpath);
        foreach (
$path_arr as $value){
            if(!empty(
$value)){
                if(empty(
$path))$path=$value;
                else 
$path.='/'.$value;
                
file_exists($path) or mkdir($path,$mode);
            }
        }
        if(
file_exists($mkpath))return true;
        return 
false;
    }
?>
一个人的力量非常有限,希望大家多多交流原创代码和使用php的经验




五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-6-25 09:39 PM#1
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
额系菜屁屁
注册会员
Rank: 2



UID 75274
精华 0
积分 54
帖子 48
金钱 54 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-6-21
状态 离线
[推荐阅读] 【声明】以后加我QQ的请注明谁让你加的,谢谢
PHP5 已经支持了。


mkdir
新建目录 (PHP 3, PHP 4, PHP 5)

bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

说明
尝试新建一个由 pathname 指定的目录。

注意也许想用八进制数指定模式,也就是说该数应以零打头。模式也会被当前的 umask 修改,可以用 umask() 来改变。

注意:
mode 在 Windows 下被忽略。自 PHP 4.2.0 起成为可选项。

默认的 mode 是 0777,意味着最大可能的访问权。有关 mode 的更多信息请阅读 chmod() 页面。

例 587. mkdir() 例子
copy to clipboard
<?php
mkdir("/path/to/my/dir", 0700);
?>
如果成功则返回 TRUE,失败则返回 FALSE。

注意:
自 PHP 5.0.0 rmdir() 也可用于某些 URL 封装协议。参见附录 M, 支持的协议/封装协议列表 的列表看看 rmdir() 支持哪些 URL 封装协议。

注意:
对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见Streams。

注意:
recursive 参数是 PHP 5.0.0 添加的。

注意:
当安全模式被激活时,PHP 将检查被操作的目录是否和正在执行的脚本有相同的 UID(所有者)。

参见 rmdir()。




http://www.tetx.com/
2006-6-25 10:19 PM#2
查看资料  Blog  发短消息  顶部
 
litqqs
注册会员
Rank: 2
初级会员


UID 64079
精华 1
积分 154
帖子 116
金钱 144 喜悦币
威望 10
人脉 0
阅读权限 20
注册 2005-5-12
状态 离线
[推荐阅读] php文章以php分界符智能自动匹配高亮显示
楼上的,可是我们实际中大多都用php4.
楼主的,函数有问题。
看我的

<?php
//*******************************************//
//作者:李腾秋
//函数名: mkDirEx
//作用: 根据路径建立目录
//参数: dir,目录路径
//参数: mode,权限
//返回值: 成功true,失败false
//******************************************//
function mkDirEx($dir,$mode=0777)
{
    if (is_dir($dir)) return true;
    $dir = dirname($dir . '/a');
    $_dir  = str_replace("\\","/",$dir);
   
    $dir_arr    = explode("/",$_dir);
    $count = count($dir_arr);
    for($i=count($dir_arr)-1; $i>=0; $i--)
    {
        $_dir = dirname($_dir);
        if(is_dir($_dir))
        {
            for($j=$i; $j<$count;$j++)
            {
                $_dir .= "/".$dir_arr[$j];
                if(is_dir($_dir)) continue;
                $succ = @mkdir($_dir, $mode);
                if(!$succ) return false;
            }
            return true;
        }
    }
    return false;
}

?>




心动就要行动.
秋士出品,必是精品.
2006-6-26 01:02 AM#3
查看资料  访问主页  发短消息  QQ  顶部
 
chinahtml
金牌会员
Rank: 6Rank: 6


UID 69683
精华 0
积分 1011
帖子 1016
金钱 1011 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2006-3-16
状态 离线
[推荐阅读] 原创的好用分页类第2版 支持Adodb 和mysql函数


<?php
function mkDirE($dir,$dirmode=700)
   {
       if (!empty(
$dir))
       {
           if (!
file_exists($dir))
           {
               
preg_match_all('/([^/]*)/?/i'$dir,$atmp);
               
$base="";
               foreach (
$atmp[0] as $key=>$val)
               {
                   
$base=$base.$val;
                   if(!
file_exists($base))
                       if (!
mkdir($base,$dirmode))
                       {
                               echo 
"Error: Cannot create ".$base;
                           return -
1;
                       }
               }
           }
           else
               if (!
is_dir($dir))
               {
                       echo 
"Error: ".$dir." exists and is not a directory";
                   return -
2;
               }
       }

       return 
0;

   }
?>




-地振山冈,一派溪山千古秀
-门朝大海,山合河水万年流
2006-6-26 09:59 AM#4
查看资料  发短消息  顶部
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[推荐阅读] 请教数据库中多行数据比较的问题


QUOTE:
原帖由 litqqs 于 2006-6-26 01:02 发表
楼上的,可是我们实际中大多都用php4.
楼主的,函数有问题。
看我的

<?php
//*******************************************//
//作者:李腾秋
//函数名: mkDirEx
//作用: 根据路径建立目录
//参数:  ...
函数哪里出现问题了?请指教,我这里运行正常呀。我的那个例子是在当前脚本的上一级目录创建脚本(路径是这样),是不是看错了?




五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-6-26 03:56 PM#5
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
litqqs
注册会员
Rank: 2
初级会员


UID 64079
精华 1
积分 154
帖子 116
金钱 144 喜悦币
威望 10
人脉 0
阅读权限 20
注册 2005-5-12
状态 离线
[推荐阅读] 新手学js的10个思考--关于数组
错误示例:
当你有这样一个文件,e:\a\b_file
注意,是文件,不是文件夹.
用你的函数再试着建文件夹e:\a\b_file\c\
时会出出错.
错在你用file_exists来判断文件夹是否存在.因为file_exists不能认出目标是文件还是文件夹
所以chinahtml老兄的也是错的




心动就要行动.
秋士出品,必是精品.
2006-6-26 08:20 PM#6
查看资料  访问主页  发短消息  QQ  顶部
 
奶并瓦
该用户已被删除









[推荐阅读] zend加密的问题
*** 作者被禁止或删除 内容自动屏蔽 ***
2006-6-26 11:49 PM#7
顶部
 
LuckLrj (中国php中的爱因斯坦)
版主
Rank: 7Rank: 7Rank: 7
老会员


UID 64836
精华 0
积分 2268
帖子 3057
金钱 2268 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2005-6-19
状态 离线
[推荐阅读] [求助]谁能帮我看看我这个数据库连接错误在哪吗?


QUOTE:
原帖由 奶并瓦 于 2006-6-26 11:49 PM 发表
怎么简单的,居然你们搞得怎么复杂,俺服了你们了

function mkdirs($dir,$param){
    return is_dir($dir)?true:mkdir(dirname($dir),$param) && mkdir($dir);
}
如果你的$param 包含这样的"../../xxx1/xxx2/xx"
你这个函数还有作用吗??




学习,工作累了,请访问我的小站,娱乐一下。http://www.52sunny.net
2006-6-26 11:54 PM#8
查看资料  Blog  发短消息  顶部
 
奶并瓦
该用户已被删除









[推荐阅读] [求助]谁能帮我看看我这个数据库连接错误在哪吗?
*** 作者被禁止或删除 内容自动屏蔽 ***
2006-6-27 01:03 AM#9
顶部
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[推荐阅读] 音乐网络公司急招聘php开发+页面设计,毕业生,有能力者优先考虑!


QUOTE:
原帖由 litqqs 于 2006-6-26 20:20 发表
错误示例:
当你有这样一个文件,e:\a\b_file
注意,是文件,不是文件夹.
用你的函数再试着建文件夹e:\a\b_file\c\
时会出出错.
错在你用file_exists来判断文件夹是否存在.因为file_exists不能认出目标是文件还是 ...
呵呵,想不到还有这样的错误。谢谢指正! 将file_exists改为is_dir就可以了

<?php
mkpath
('hml/a/b/c/d/e');
function 
mkpath($mkpath,$mode=0777){
    
$path_arr=explode('/',$mkpath);
    foreach (
$path_arr as $value){
        if(!empty(
$value)){
            if(empty(
$path))$path=$value;
            else 
$path.='/'.$value;
            
is_dir($path) or mkdir($path,$mode);
        }
    }
    if(
is_dir($mkpath))return true;
    return 
false;
}
?>


QUOTE:
原帖由 奶并瓦 于 2006-6-27 01:03 发表
如果你JJ被割了你还能有小孩吗?
你有小孩吗?




五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-6-27 02:07 AM#10
查看资料  访问主页  Blog  发短消息  QQ  顶部
 15  1/2  1  2  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 


Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.030398 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP