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 ?>