blob: 93bddb029ad15fa21e7d4e9c8d400c72245eee10 [file] [log] [blame]
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* Code Igniter
*
* An open source application development framework for PHP 4.3.2 or newer
*
* @package CodeIgniter
* @author Rick Ellis
* @copyright Copyright (c) 2006, pMachine, Inc.
* @license http://www.codeignitor.com/user_guide/license.html
* @link http://www.codeigniter.com
* @since Version 1.0
* @filesource
*/
// ------------------------------------------------------------------------
/**
* Code Igniter File Helpers
*
* @package CodeIgniter
* @subpackage Helpers
* @category Helpers
* @author Rick Ellis
* @link http://www.codeigniter.com/user_guide/helpers/file_helpers.html
*/
// ------------------------------------------------------------------------
/**
* Read File
*
* Opens the file specfied in the path and returns it as a string.
*
* @access public
* @param string path to file
* @return string
*/
function read_file($file)
{
if ( ! file_exists($file))
{
return FALSE;
}
if ( ! $fp = @fopen($file, 'rb'))
{
return FALSE;
}
flock($fp, LOCK_SH);
$data = '';
if (filesize($file) > 0)
{
$data = fread($fp, filesize($file));
}
flock($fp, LOCK_UN);
fclose($fp);
return $data;
}
// ------------------------------------------------------------------------
/**
* Write File
*
* Writes data to the file specified in the path.
* Creats a new file if non-existant.
*
* @access public
* @param string path to file
* @param string file data
* @return bool
*/
function write_file($path, $data)
{
if ( ! $fp = @fopen($path, 'wb'))
{
return FALSE;
}
flock($fp, LOCK_EX);
fwrite($fp, $data);
flock($fp, LOCK_UN);
fclose($fp);
return TRUE;
}
// ------------------------------------------------------------------------
/**
* Delete Files
*
* Deletes all files contained in the supplied directory path.
* Files must be writable or owned by the system in order to be deleted.
* If the second parameter is set to TRUE, any direcotries contained
* within the supplied base directory will be nuked as well.
*
* @access public
* @param string path to file
* @param bool whether to delete any directories found in the path
* @return bool
*/
function delete_files($path, $del_dir = FALSE)
{
// Trim the trailing slahs
$path = preg_replace("|^(.+?)/*$|", "\\1", $path);
if ( ! $current_dir = @opendir($path))
return;
while(FALSE !== ($filename = @readdir($current_dir)))
{
if ($filename != "." and $filename != "..")
{
if (is_dir($path.'/'.$filename))
{
delete_files($path.'/'.$filename, $del_dir);
}
else
{
unlink($path.'/'.$filename);
}
}
}
@closedir($current_dir);
if ($del_dir == TRUE)
{
@rmdir($path);
}
}
?>