成长脚印-专注于互联网发展
【分享】PHP转换相对路径,并创建目录
post by:天之骄子 2012-9-28 12:01
<?php
/*
* 作用:主用于文件上传后的目录自动生成
* 时间:2006-3-12
* 作者:欣然随风
* 测试:张洋
* 测试时间:2012-9-28
* 测试结果:经测试可用

*/

class class_dir
{
     /**
      * 换算实际路径
      */
    function dir_path($path)
    {
       $adir = explode('/',$path);
    
       for($i=0;$i<count($adir);$i++)
       {
        $key = false;
        if($adir[$i] == "..") $key = $i;
    
        if($key !== false)
        {
         for($j=0;$j<count($adir);$j++)
         {
          if($j==$key-1 || $j==$key) continue;
          $newadir[] = $adir[$j];
         }
         $adir = $newadir;
         $newadir = false;
         $i=$i-2;
        }
       }
       Return $path = implode("/",$adir);
    }

     /**
      * 按指定路径生成目录
      */
     function dir_mkdirs($path)
     {
         $path=str_replace('\\', '/', $path);
        $path = $this->dir_path($path);
        $adir = explode('/',$path);
             $dirlist = '';
             $rootdir = array_shift($adir);
             if(!file_exists($rootdir))
                 mkdir($rootdir);
    
             foreach($adir as $val)
             {
                  $dirlist .= "/".$val;
                  $dirpath = $rootdir.$dirlist;
                  if(!file_exists($dirpath))
                  {
                      mkdir($dirpath);
                      chmod($dirpath,0777);
                  }
             }
      }
}//class end
//测试:
//$path = "E:/xxx/main/configs/../../../main/upfile/logo/";
$p = new class_dir;
$p->dir_mkdirs($path);

?> 

评论:
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容