mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 03:32:00 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9828 201d5d3c-b55e-5fd7-737f-ddc643e51545
129 lines
2.3 KiB
PHP
129 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* @class FileObject
|
|
* @author NHN (developers@xpressengine.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;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* End of file FileObject.class.php */
|
|
/* Location: ./classes/file/FileObject.class.php */
|