給大家一個簡單的文本操作的類
我以前寫的,不過一直都沒機會用了,文本不如資料庫
資料是以行儲存的,以\n結尾,注意你輸入的資料必須以"\n"結尾的,這是幾個最基本的類成員,文本的特別要注意效率問題,比如你要更新檔案的2,3,4行,用:
for($i=2;$i<=4;$i++)$this->update($file,$i,$msg);不如這樣的:
$data=$this->read($file);
for($i=2;$i<=4;$i++)$data[$i]=$msg;
$this->write($file,$data); 的
class text{
var $key="<?die;?>"; //資料保護
var $keylen; //資料保護長度
function text() //類的構造器
{
$this->keylen=strlen($this->lkeylen); //得到保護長度
}
function read($file) //讀檔案,返回一個數組
{
if(file_exists($file)):
$data=@file($file);
$data[0]=substr($data[0],$this->keylen);
return $a;
endif;
}
function write($file,$data=array()) //寫檔案,資料為一個數組
{
if($fp=fopen($file,"w")):
flock($fp,3);
fwrite($fp,$this->key);
foeach($data as $v)fwrite($fp,$v);
return true;
endif;
}
function add($file,$msg)
//向檔案最後添加資料(不存在就先建立檔案)
{
$a=$this->read($file); //這個不管檔案存在不
$a[]=$msg;
return $this->write($file,$a);
}
function insert($file,$n,$msg) //向第$n前插入資料
{
if($a=$this->read($file)):
$a[$n]=$msg.$a[$n];
return true;
endif;
}
function updata($file,$n,$msg) //更新$n資料
{
if($a=$this->read($file)):
$a[$n]=$msg;
return true;
endif
}
function del($file,$n) //刪除$n資料
{
return $this->updata($file,$n,"");
}
}