建立url或者路径path的文件夹
程序员文章站
2022-05-20 13:31:47
...
/*** 建立url或者路径path的文件夹,并将url里的文件夹设置为可写, 如果不指定路径则在当前目录建立文件夹,否则在设置路径里建立文件夹。 $url : 可为任意目录形式url,如'1/2/3/4/'、'1/2/3/4'、'http://www.5jiuai.com/1/2/3/43/4/' $path : 可为任意形式的path,如'd:/test'、'd:\test' 返回 : 路径目录 例子: $url = 'http://www.5jiuai.com/1/2/3/43/4/'; $path = 'd:/test'; echo create_folder($url,'d:/test'); */ function create_folder($url,$path=''){ $path_str = !empty($path) ? $path : realpath(dirname(__FILE__)); //当 $c_path==''时,取当前目录 $folder_path_str = preg_match('/\\\/i',$path_str) ? preg_replace('/\\\/i','/',$path_str) : $path_str; //将路径里的'\'全部转为'/' $folder_path_arr = preg_match('/\//i',$folder_path_str) ? explode('/',$folder_path_str) : array(); //将路径分割为数组 $no_http_url = preg_match('/http:\/\//i',$url) ? preg_replace('/http:\/\//i','',$url) : $url; //去除url中的'http://' 字符 $no_http_url = preg_match('/\\\/i',$no_http_url) ? preg_replace('/\\\/i','/',$no_http_url) : $no_http_url; //将url里的'\'全部转为'/' $folder_url_arr = preg_match('/\//i',$no_http_url) ? explode('/',$no_http_url) : array(); //将url分割为数组 $path_arr = @array_merge($folder_path_arr,$folder_url_arr); //合并数组 $path_way = ''; foreach($path_arr as $key => $val){ if(empty($val)) continue; //如果$val为空值,则跳转到下一步 $path_way .= $val.'/'; if(is_dir($path_way)) continue; //如果目录已经存在,则跳转到下一步 @mkdir($path_way); if(in_array($val,$folder_url_arr)) @chmod($path_way,0777); //将url里的目录设置为可写 } return $path_way; }