mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-23 20:32:14 +09:00
#18353187 : add file object class
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6825 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
a2fbbe9a2d
commit
fb9f2dd4a4
2 changed files with 147 additions and 1 deletions
|
|
@ -557,7 +557,7 @@
|
|||
* @brief write array into ini file
|
||||
* @param[in] $filename target ini file name
|
||||
* @param[in] $arr array
|
||||
* return if array contains nothing it returns false, otherwise true
|
||||
* @return if array contains nothing it returns false, otherwise true
|
||||
**/
|
||||
function writeIniFile($filename, $arr){
|
||||
if(count($arr)==0) return false;
|
||||
|
|
@ -581,5 +581,23 @@
|
|||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief return file object
|
||||
* @param[in] $file_name target file name
|
||||
* @param[in] $mode file mode for fopen
|
||||
* @remarks if the directory of the file does not exist, create it.
|
||||
* @return file object
|
||||
**/
|
||||
function openFile($file_name, $mode)
|
||||
{
|
||||
$pathinfo = pathinfo($file_name);
|
||||
$path = $pathinfo['dirname'];
|
||||
if(!is_dir($path)) FileHandler::makeDir($path);
|
||||
|
||||
require_once("FileObject.class.php");
|
||||
$file_object = new FileObject($file_name, $mode);
|
||||
return $file_object;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
128
classes/file/FileObject.class.php
Normal file
128
classes/file/FileObject.class.php
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
<?php
|
||||
/**
|
||||
* @class FileObject
|
||||
* @author haneul (haneul0318@gmail.com)
|
||||
* @brief file abstraction class
|
||||
**/
|
||||
|
||||
class FileObject extends Object
|
||||
{
|
||||
var $fp = null; ///< file descriptor
|
||||
var $path = null; ///< file path
|
||||
var $mode = "r"; ///< file open mode
|
||||
|
||||
/**
|
||||
* @brief constructor
|
||||
* @param[in] $path path of target file
|
||||
* @param[in] $mode file open mode
|
||||
* @return file object
|
||||
**/
|
||||
function FileObject($path, $mode)
|
||||
{
|
||||
if($path != null) $this->Open($path, $mode);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief append target file's content to current file
|
||||
* @param[in] $file_name path of target file
|
||||
* @return none
|
||||
**/
|
||||
function append($file_name)
|
||||
{
|
||||
$target = new FileObject($file_name, "r");
|
||||
while(!$target->feof())
|
||||
{
|
||||
$readstr = $target->read();
|
||||
$this->write($readstr);
|
||||
}
|
||||
$target->close();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief check current file meets eof
|
||||
* @return true: if eof. false: otherwise
|
||||
**/
|
||||
function feof()
|
||||
{
|
||||
return feof($this->fp);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief read from current file
|
||||
* @param[in] $size size to read
|
||||
* @return read bytes
|
||||
**/
|
||||
function read($size = 1024)
|
||||
{
|
||||
return fread($this->fp, $size);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief write string to current file
|
||||
* @param[in] $str string to write
|
||||
* @return written bytes. if failed, it returns false
|
||||
**/
|
||||
function write($str)
|
||||
{
|
||||
$len = strlen($str);
|
||||
if(!$str || $len <= 0) return false;
|
||||
if(!$this->fp) return false;
|
||||
$written = fwrite($this->fp, $str);
|
||||
return $written;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief open a file
|
||||
* @param[in] $path path of target file
|
||||
* @param[in] $mode file open mode
|
||||
* @remarks if file is opened, close it and open the new path
|
||||
* @return true if succeed, false otherwise.
|
||||
*/
|
||||
function open($path, $mode)
|
||||
{
|
||||
if($this->fp != null)
|
||||
{
|
||||
$this->close();
|
||||
}
|
||||
$this->fp = fopen($path, $mode);
|
||||
if(! is_resource($this->fp) )
|
||||
{
|
||||
$this->fp = null;
|
||||
return false;
|
||||
}
|
||||
$this->path = $path;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief return current file's path
|
||||
* @return file path
|
||||
**/
|
||||
function getPath()
|
||||
{
|
||||
if($this->fp != null)
|
||||
{
|
||||
return $this->path;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief close file
|
||||
* @return none
|
||||
**/
|
||||
function close()
|
||||
{
|
||||
if($this->fp != null)
|
||||
{
|
||||
fclose($this->fp);
|
||||
$this->fp = null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue