示例#1
0
 /**
  * Recursively creates new folders from the specified path or paths
  *
  * @param   mixed   a single path or an array of paths
  * @param   number  initial permissions for 
  * @return  mixed   the cleaned path or array of paths
  */
 public static function make_path($path, $permissions = 0755)
 {
     if (is_array($path)) {
         foreach ($path as $p) {
             $arr = array();
             array_push($arr, filesystem::make_path($p, $permissions));
         }
         return $arr;
     } else {
         $path = preg_replace('%/+%', '/', $path);
         // remove double slashes
         $path = preg_replace('%/$%', '', $path);
         // remove trailing slash
         $folders = preg_split('%(?!^)/%', $path);
         // split into path segments, preserving any initial leading slash
         $path = '';
         foreach ($folders as $folder) {
             $path .= $folder . '/';
             if (!file_exists($path)) {
                 mkdir($path, $permissions);
             }
         }
         return dir($path);
     }
 }