예제 #1
0
 function mkdir($dir, $perm = 0777, $parents = true)
 {
     $dir = dir::clean_path($dir);
     if (!$parents) {
         return dir::_do_mkdir($dir, $perm);
     }
     $separator = dir::separator();
     $dir_elements = dir::explode_path($dir);
     if (count($dir_elements) == 0) {
         return true;
     }
     if (!$dir_elements[0]) {
         array_shift($dir_elements);
         $current_dir .= array_shift($dir_elements);
     } else {
         $current_dir = array_shift($dir_elements);
     }
     if (!dir::_do_mkdir($current_dir, $perm)) {
         return false;
     }
     for ($i = 0; $i < count($dir_elements); $i++) {
         $current_dir .= $separator . $dir_elements[$i];
         if (!dir::_do_mkdir($current_dir, $perm)) {
             return false;
         }
     }
     return true;
 }
예제 #2
0
 function mkdir($dir, $perm, $parents = true)
 {
     $dir = dir::clean_path($dir);
     if (!$parents) {
         return dir::_do_mkdir($dir, $perm);
     }
     $separator = dir::separator();
     $dir_elements = dir::explode_path($dir);
     if (count($dir_elements) == 0) {
         return true;
     }
     $current_dir = $dir_elements[0];
     if (!dir::_do_mkdir($current_dir, $perm)) {
         return false;
     }
     for ($i = 1; $i < count($dir_elements); ++$i) {
         $dir_element = $dir_elements[$i];
         $current_dir .= $separator . $dir_element;
         if (!dir::_do_mkdir($current_dir, $perm)) {
             return false;
         }
     }
     return true;
 }
예제 #3
0
	function test_explode_relative_path()
	{
		$path = dir :: explode_path('tmp\../tmp/wow////hey/');
		
		$this->assertEqual(sizeof($path), 3);
		
		$this->assertEqual($path[0], 'tmp');
		$this->assertEqual($path[1], 'wow');
		$this->assertEqual($path[2], 'hey');
		
		$path = dir :: explode_path('tmp\../tmp/wow////hey'); // no trailing slash
		
		$this->assertEqual(sizeof($path), 3);
		
		$this->assertEqual($path[0], 'tmp');
		$this->assertEqual($path[1], 'wow');
		$this->assertEqual($path[2], 'hey');
	}