00001 <?php 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 require_once(dirname(__FILE__) . '/KjwLib.php');
00021 
00029 function kjwfs_mkdir($path) {
00030         if (is_dir($path))
00031                 return true;
00032         if (@mkdir($path, 02775))
00033                 return true;
00034         
00035         $n = strrpos($path, '/'); 
00036         if ((int)$n === 0 || !kjwfs_mkdir(substr($path, 0, $n)))
00037                 return false;
00038         
00039         if (@mkdir($path, 02775))
00040                 return true;
00041         return false;
00042 }
00043 
00052 function kjwfs_rmdir($path, $filicide = false) {
00053         $path = realpath($path);
00054         if (!is_dir($path))
00055                 return false;
00056         $dp = opendir($path);
00057         $failed = false;
00058         while (($file = readdir($dp))) {
00059                 if ($file != '.' && $file != '..') {
00060                         $absfile = $path . '/' . $file;
00061                         if (is_dir($absfile))
00062                                 $status = kjwfs_rmdir($absfile, $filicide);
00063                         elseif ($filicide)
00064                                 $status = @unlink($absfile);
00065                         else
00066                                 $status = false;
00067                         if (!$status)
00068                                 $failed = true;
00069                 }
00070         }
00071         closedir($dp);
00072         if ($failed)
00073                 return false;
00074         return rmdir($path);
00075 }
00076 
00077 function kjwfs_file_put_contents($path, $data) {
00078         if (!kjwfs_mkdir(dirname($path)))
00079                 return false;
00080         return file_put_contents($path, $data);
00081 }
00082                 
00083 ?>