转换相对路径,并创建目录

主要用于上传文件,和自动生成目录:

<?php
/*
 * 作用:主用于文件上传后的目录自动生成
 * 时间:2006-3-12
 * 作者:欣然随风
 */

 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 = $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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值