carbonPHP Initial commit v2.0
[carbonphp.git] / Source / carbon / utilities / filesystem_utility.php
blobcc5c88ce9da48d6402dc12bb7bf387480ef2509c
1 <?php
2 /*------------------------------------------------------------
3 * CarbonPHP framework (C) Tom Bell
4 * http://tombell.org.uk
5 *------------------------------------------------------------*/
7 if (!defined('CARBON_PATH'))
9 exit('Direct script access is not allowed.');
12 function read_file($file_name)
14 if (!file_exists($file_name))
16 return false;
19 if (function_exists('file_get_contents'))
21 return file_get_contents($file_name);
24 $file = @fopen($file_name, 'rb');
26 if ($file == false)
28 return false;
31 flock($file, LOCK_SH);
33 $data = '';
35 if (filesize($file) > 0)
37 $data =& fread($file, filesize($file));
40 flock($file, LOCK_UN);
41 fclose($file);
43 return $data;
46 function write_file($path, $data, $mode = 'wb')
48 $file = fopen($path, $mode);
50 if ($file == false)
52 return false;
55 flock($file, LOCK_EX);
56 fwrite($file, $data);
57 flock($file, LOCK_UN);
58 fclose($file);
60 return true;
63 function delete_files($path, $del_dir = false, $level = 0)
65 $path = preg_replace("|^(.+?)/*$|", "\\1", $path);
67 $current_dir = @opendir($path);
69 if ($current_dir == false)
71 return true;
74 while (($filename = @readdir($current_dir)) !== false)
76 if ($filename != "." && $filename != "..")
78 if (is_dir($path . '/' . $filename))
80 $level++;
81 delete_files($path . '/' . $filename, $del_dir, $level);
83 else
85 unlink($path . '/' . $filename);
90 @closedir($current_dir);
92 if ($del_dir == true && $level > 0)
94 @rmdir($path);
98 function get_filenames($source_dir, $include_path = false)
100 static $filedata = array();
102 $file = @opendir($source_dir);
104 if ($file == true)
106 while (($filename = readdir($file)) !== false)
108 if (@is_dir($source_dir . $filename) && substr($filename, 0, 1) != '.')
110 get_filenames($source_dir . $filename . '/', $include_path);
112 elseif (substr($filename, 0, 1) != ".")
114 $filedata[] = ($include_path == true) ? $source_dir . $filename : $filename;
118 return $filedata;