一个简单的php变量记录/读取类

来源:互联网 发布:上海音乐学院网络报名 编辑:程序博客网 时间:2024/06/16 23:31

<?
// lostgdi 56079024@qq.com
class Ini{
var $file_name = ""; //目标文件名
var $save_buffer = ""; //写入的缓冲
var $file_attr_msg = ""; //文件参数信息
// var $load_buffer = ""; //读出的缓冲
var $op = ""; //内部标记,操作方式
var $max_input_date_length = 4000000;//最大写入字节
var $max_output_date_length= 4000000;//最大读取字节
var $error_msg = ""; //错误信息记录--报告
function Ini($file_name=""){
$this->file_name = $file_name;
}

//初始化
function Init(){
if( empty($this->file_name) ){
$this->error_msg = "file name empty";
return false;
}
else if( is_dir($this->file_name) ){
$this->error_msg = "file name can not be dir";
return false;
}
else{
if( $this->op=='read' ){
if( !$this->CheckRead() ){
$this->error_msg = "file do not exist | can not permit to read";
return false;
}
else if( filesize($this->file_name) > $this->max_output_date_length ){
$this->error_msg = "file size more than $this->max_output_date_length , did not permit ";
return false;
}
}
else if( $this->op=='write' ) {
if( !$this->CheckWrite() ){
$this->error_msg = "can not permit to write";
return false;
}
else if( strlen($this->save_buffer) > $this->max_input_date_length ){
$this->error_msg = "save date size more than $this->max_input_date_length , did not permit ";
return false;
}
else if( sizeof($this->save_buffer)==0 || empty($this->save_buffer) ){
$this->error_msg = "no date to save";
return false;
}
}
else if( $this->op=='attribute' ){
if( $this->file_attr_msg!='filesize' || $this->file_attr_msg!='filemtime' ){
$this->error_msg = "query ".$this->file_attr_msg." not support current";
return false;
}
}
return true;
}
}

//输入文件名
function Inifile($file_name){
$this->file_name = $file_name;
}

//检查可读
function CheckRead(){
return is_readable($this->file_name);
}

//检查可写
function CheckWrite(){
if( $this->CheckExist() ) return is_writable($this->file_name);
else return is_writable( dirname($this->file_name) );
}

//检查文件存在
function CheckExist(){
return file_exists($this->file_name);
}

//读出数据
function Load(){
$this->op = "read";
if( !$this->Init() ) return false;

$buffer = "";
$fp = fopen($this->file_name,'r');
while (!feof($fp)) $buffer .= fread($fp, 4096);
fclose($fp);
return unserialize($buffer);
}

//写入数据
function Save($input_buffer=""){
$this->op = "write";
$this->save_buffer = serialize($input_buffer);
if( !$this->Init() ) return false;

$fp = fopen($this->file_name,'w');
fwrite($fp,$this->save_buffer);
fclose($fp);
return true;
}

//返回文件属性
function Attr($par){
$this->op = "attribute";
$this->file_attr_msg = $par;
if( !$this->Init() ) return false;

return $par($this->file_name);
}

//返回错误信息
function GetErrorMsg(){
return $this->error_msg;
}
}//class


/*
require_once('ini.php');
$buffer = 'hihi';
$obj = new Ini('tools/hehe.txt');
$obj->Save($buffer);
echo $obj->GetErrorMsg();
echo $read = $obj->Load();

*/
?>

原创粉丝点击