/ePHP/libraries/Dir.class.php
PHP | 98 lines | 59 code | 8 blank | 31 comment | 18 complexity | e14735d3d67ac5a6b48eb7ea7c4ac538 MD5 | raw file
Possible License(s): Apache-2.0
- <?php
- /**
- +------------------------------------------------------------------------------
- * ?????
- +------------------------------------------------------------------------------
- * @version 3.0
- * @author WangXian
- * @package libraries
- * @email admin@loopx.cn
- * @creation_date 2011-1-1 ??05:59:48
- * @last_modified 2011-06-04 22:21:03
- +------------------------------------------------------------------------------
- */
-
- class Dir
- {
- /**
- * ????
- * ???????index.php?????????
- * @param string $source_dir ???index.php???
- * @param boolean $subdir ?????,true???false???
- * @return mixed
- */
- public static function map($source_dir, $subdir = true)
- {
- if ( true == ($fp = opendir($source_dir)) )
- {
- $source_dir = rtrim($source_dir, '/').'/';
- $filedata = array();
-
- while (false !== ($file = readdir($fp)))
- {
- if ( $file == '.' OR $file == '..' ) continue;
-
- if ($subdir && is_dir($source_dir.$file))
- {
- $temp_array = array();
- $temp_array = self::map($source_dir.$file.'/', $subdir);
- $filedata[$file] = $temp_array;
- }
- else
- {
- $filedata[] = $file;
- }
- }
-
- closedir($fp);
- return $filedata;
- }
- else
- {
- return false;
- }
- }
-
- /**
- * ????????
- * @param string $dir
- * @return boolean true???false???
- */
- public static function isEmpty($dir)
- {
- $handle = opendir($dir);
- $i = 0;
- while( false !== ($file = readdir($handle)) ) $i++;
- closedir($handle);
-
- if($i >= 2) return false;
- else return true;
- }
-
- /**
- * ????????????
- * @param string $dir
- * @return boolean
- */
- public static function deleteDir($dir)
- {
- $d = dir($dir);
- while( false !== ($entry = $d->read()) )
- {
- if($entry == '.' || $entry == '..') continue;
- $currele = $d->path.'/'.$entry;
- if(is_dir($currele))
- {
- if(self::isEmpty($currele)) rmdir($currele);
- else self::deleteDir($currele);
- }
- else unlink($currele);
- }
- $d->close();
-
- rmdir($dir);
- return true;
- }
- }
- /* End of file Dir.class.php */
- /* Location: ./_framework/libraries/Dir.class.php */