RSS订阅
PHP程序员站--WWW.PHPERZ.COM  
网站地图
高级搜索
收藏本站

 当前位置:主页 >> PHP基础 >> 基础文章 >> 文章内容
PHP文本操作类
[收藏此页[打印本页]   
来源:互联网  作者:未知  发布时间:2008-01-13

以下为引用的内容:
<?php
class CtbClass 
{     
    
                 var     
$file
;             
phperz.com

                 var     
$index
;         
    
         
//建立一个文件并写入输入     
                 
function     null_write($new
)     
                 {     
                                 
$f=fopen($this->file,"w"
);              php程序员之家
                                 
flock($f,LOCK_EX
);     
                                 
fputs($f,$new
);             
                                 
fclose($f
);      phperz.com
                 }     
                 
//     添加数据记录到文件末端     
                 
function     add_write($new
)     {                 
                                 
$f=fopen($this->file,"a"
);              phperz.com
                                 
flock($f,LOCK_EX
);     
                                 
fputs($f,$new
);                 
                                 
fclose($f
);     
php程序员站

                 }     
                 
//     配合readfile()的返回一起使用,把一行数据转换为一维数组     
                 
function     make_array($line
)     {     
                                 
$array     =     explode("\x0E",$line
);     
php程序员之家

                                 return     
$array
;     
                 }     
                 
                 
//把为一维数组转换一行数据     
                 
function     join_array($line
)     {     
www.phperz.com

                                 
$array     =     join("\x0E",$line
);     
                                 return     
$array
;     
                 }      www.phperz.com
                 
//     返回数据文件的总行数     
                 
function     getlines
()     {     
                                 
$f=file($this->file
);              phperz.com
                                 return     
count($f
);             
                 }     
                 
//     返回下一行的数据记录(备用)     
                 
function     next_line
()     {      php程序员站
                                 
$this->index=$this->index
++;             
                                 return     
$this->get
();             
phperz.com

                 }     
    
                 
//     返回上一行的数据记录(备用)     
                 
function     prev_line
()     {     
                                 
$this->index=$this->index
--;              php程序员站
                                 return     
$this->get
();             
                 }         
                 
//     返回当前行的数据记录数据较小     
                 
function     get
()     {     
phperz.com

                                 
$f=fopen($this->file,"r"
);             
                                 
flock($f,LOCK_SH
);     
www.phperz.com

                                 for(
$i=0;$i<=$this->index;$i
++)     {     
                                                 
$rec=fgets($f,1024
);              phperz.com
                                 }     
                                 
$line=explode("\x0E",$rec
);     
                                 
fclose($f
);     
phperz~com

                                 return     
$line
;             
                 }         
                 
//     返回当前行的数据记录数据较大     
                 
function     get_big_file
()     {     
php程序员之家

                                 
$f=fopen($this->file,"r"
);             
                                 
flock($f,LOCK_SH
);      www.phperz.com
                                 for(
$i=0;$i<=$this->index;$i
++)     {     
                                                 
$rec=fgets($f,1024*5
);             
www~phperz~com

                                 }     
                                 
$line=explode("\x0E",$rec
);     
                                 
fclose($f
);      phperz~com
                                 return     
$line
;             
                 }         
                 
//     打开数据文件---以一维数组返回文件内容     
                 
function     read_file
()     {      phperz.com
                                 if (
file_exists($this->file
))
                                  {     
                                     
$line     =file($this->file
);      www.phperz.com
                                 }     
                                 return  
$line
;     
                 }     
                 
//     打开数据文件---以二维数组返回文件内容     
                 
function     openFile
()     {     
php程序员之家

                                 if     (
file_exists($this->file
))     {     
                                                 
$f     =file($this->file
);     
phperz.com

                                                 
$lines     
=     array();     
                                                 foreach     (
$f     as     $rawline
)     {      www.phperz.com
                                                                 
$tmpline     =     explode("\x0E",$rawline
);     
                                                                 
array_push($lines,     $tmpline
);      www~phperz~com
                                                 }     
                                 }     
                                 return     
$lines
;     
                 }     

php程序员之家


                 
//     传入一个数组,合并成一行数据,重写整个文件     
                 
function     overwrite($array
){     
                                 
$newline     =     implode("\x0E",$array
);                      phperz.com
                                 
$f     =     fopen($this->file,"w"
);     
                                 
flock($f,LOCK_EX
);      php程序员之家
                                 
fputs($f,$newline
);     
                                 
fclose($f
);     
                 }     
          www.phperz.com
                 
//     添加一行数据记录到文件末端     
                 
function     add_line($array,$check_n=1
)     {         
                                 
$s=implode("\x0E",$array
);              www.phperz.com
                                 
$f=fopen($this->file,"a"
);             
                                 
flock($f,LOCK_EX
);      php程序员之家
                                 
fputs($f,$s
);             
                                 if     (
$check_n==1)     fputs($f,"\n"
);             

www~phperz~com


                                 
fclose($f
);     
                 }             
    
                 
//     插入一行数据记录到文件最前面     
                 
function     insert_line($array
)     {      php程序员站
                                 
$newfile     =     implode("\x0E",$array
);     
                                 
$f     =     fopen($this->file,"r"
);      www.phperz.com
                                 
flock($f,LOCK_SH
);     
                                 while     (
$line     =     fgets($f,1024
))     {     

phperz.com


                                                 
$newfile     .=     $line
;     
                                 }     
                                 
fclose($f
);      php程序员站
                                 
$f     =     fopen($this->file,"w"
);     
                                 
flock($f,LOCK_EX
);      www.phperz.com
                                 
fputs($f,$newfile
);     
                                 
fclose($f
);     
                 }     
    
                 
//     更新所有符合条件的数据记录,适用于每行字节数据较大的情况     

php程序员之家


                 
function     update($column,$query_string,$update_array
)     {     
                                 
$update_string     =     implode("\x0E",$update_array
);              php程序员站
                                 
$newfile     =     ""
;                     
                                 
$fc=file($this->file
);     
phperz.com

                                 
$f=fopen($this->file,"r"
);     
                                 
flock($f,LOCK_SH
);      php程序员站
                                 for     (
$i=0;$i<count($fc);$i
++)     {     
                                                 
$list     =     explode("\x0E",$fc[$i
]);     

php程序员站


                                                 if     (
$list[$column]     !=     $query_string
)     {     
                                                                 
$newfile     =     $newfile.chop($fc[$i])."\n"
;     

www.phperz.com


                                                 }     else     {     
                                                                 
$newfile     =     $newfile.$update_string
;     

www~phperz~com


                                                 }     
                                 }     
                                 
fclose($f
);     
                                 
$f=fopen($this->file,"w"
);     

phperz.com


                                 
flock($f,LOCK_EX
);     
                                 
fputs($f,$newfile
);     
                                 
fclose($f
);     
phperz~com

                 }     
    
                 
//     更新所有符合条件的数据记录,适用于每行字节数据较小的情况     
                 
function     update2($column,$query_string,$update_array
)     {     
                                 
$newline     =     implode("\x0E",$update_array
);             

phperz.com


                                 
$newfile     =     ""
;     
                                 
$f     =     fopen($this->file,"r"
);     

php程序员站


                                 
flock($f,LOCK_SH
);     
                                 while     (
$line     =     fgets($f,1024
))     {      phperz.com
                                                 
$tmpLine     =     explode("\x0E",$line
);     
                                                 if     (
$tmpLine[$column]     ==     $query_string
)     {     
php程序员站

                                                                 
$newfile     .=     $newline
;     
                                                 }     else     {      www.phperz.com
                                                                 
$newfile     .=     $line
;     
                                                 }     
                                 }      php程序员站
                                 
fclose($f
);     
                                 
$f     =     fopen($this->file,"w"
);      www.phperz.com
                                 
flock($f,LOCK_EX
);     
                                 
fputs($f,$newfile
);     
                                 
fclose($f
);      php程序员站
                 }     
    
                 
//     删除所有符合条件的数据记录,适用于每行字节数据较大的情况     
                 
function     delete($column,$query_string
)     {     
                                 
$newfile     =     ""
;                     
phperz.com

                                 
$fc=file($this->file
);     
                                 
$f=fopen($this->file,"r"
);     

www.phperz.com


                                 
flock($f,LOCK_SH
);     
                                 for     (
$i=0;$i<count($fc);$i
++)     {      php程序员之家
                                                 
$list     =     explode("\x0E",$fc[$i
]);     
                                                 if     (
$list[$column]     !=     $query_string
)     {     

www~phperz~com


                                                                 
$newfile     =     $newfile.chop($fc[$i])."\n"
;     
                                                 }     
php程序员之家

                                 }     
                                 
fclose($f
);     
                                 
$f=fopen($this->file,"w"
);      php程序员站
                                 
flock($f,LOCK_EX
);     
                                 
fputs($f,$newfile
);     
                                 
fclose($f
);      phperz~com
                 }             
    
                 
//     删除所有符合条件的数据记录,适用于每行字节数据较小的情况     
                 
function     delete2($column,$query_string
){         
                                 
$newfile     =     ""
;      www.phperz.com
                                 
$f     =     fopen($this->file,"r"
);     
                                 
flock($f,LOCK_SH
);     
www.phperz.com

                                 while     (
$line     =     fgets($f,1024
))     {     
                                                 
$tmpLine     =     explode("\x0E",$line
);      phperz~com
                                                 if     (
$tmpLine[$column]     !=     $query_string
)     {     
                                                                 
$newfile     .=     $line
;     
www.phperz.com

                                                 }     
                                 }     
                                 
fclose($f
);     
                                 
$f     =     fopen($this->file,"w"
);     

www~phperz~com


                                 
flock($f,LOCK_EX
);     
                                 
fputs($f,$newfile
);     
                                 
fclose($f
);     

php程序员站


                 }     
    
         
//取得一个文件里某个字段的最大值     
                 
function     get_max_value($column
)     {     
                                 
$tlines     =     file($this->file
);     

phperz~com


                                 for     (
$i=0;$i<=count($tlines);$i
++)     {     
                                                 
$line=explode("\x0E",$tlines[$i
]);      php程序员站
                                                 
$get_value[]=$line[$column
];     
                                 }     
                     
$get_max_value     =     max($get_value
);     

www.phperz.com


                                 return     
$get_max_value
;     
                 }     
    
    
                 
//     根据数据文件的某个字段是否包含$query_string进行查询,以二维数组返回所有符合条件的数据     
                 
function     select($column,     $query_string
)     {     

php程序员站


                                 
$tline     =     $this->openfile
();     
                                 
$lines     
=     array();     
                                 foreach     (
$tline     as     $line
)     {     

phperz.com


                                                 if     (
$line[$column]     ==     $query_string
)     {     
                                                                 
array_push($lines,     $line
);      php程序员之家
                                                 }     
                                 }     
    
                                 return     
$lines
;     
                 }      php程序员站
    
                 
//     功能与function     select()一样,速度可能略有提升     
                 
function     select2($column,     $query_string
)     {     
                                 if     (
file_exists($this->file
))     {     
phperz~com

                                                 
$tline     =     $this->read_file
();     
                                                 foreach     (
$tline     as     $tmpLine
)     {      phperz.com
                                                                 
$line     =     $this->make_array($tmpLine
);     
                                                                 if     (
$line[$column]     ==     $query_string
)     {     
www~phperz~com

                                                                                 
$lines[]=$tmpLine
;     
                                                                 }      www~phperz~com
                                                 }     
                                 }     
    
                                 return     
$lines
;     
                 }     

www.phperz.com


    
                 
//     根据数据文件的某个字段是否包含$query_string进行查询,以一维数组返回第一个符合条件的数据     
                 
function     select_line($column,     $query_string
)     {     
                                 
$tline     =     $this->read_file
();      www.phperz.com
                                 foreach     (
$tline     as     $tmpLine
)     {     
                                                 
$line     =     $this->make_array($tmpLine
);      php程序员站
                                                 if     (
$line[$column]     ==     $query_string
)     {     
                                                     return     
$line
;     

phperz.com


                                                                 break;     
                                                 }     
                                 }     
                 }      phperz~com
                 
//     select     next/prev     line(next_prev     ==>     1/next,     2/prev)     by     cx     
                 
function     select_next_prev_line($column,     $query_string,     $next_prev
)     {     

phperz.com


                                 
$tline     =     $this->read_file
();     
                                 
$line_key_end     =     count($tline)     -     1
;     
phperz.com

                                 
$line_key     =     -1
;     
                                 foreach     (
$tline     as     $tmpLine
)     {     
                                                 
$line_key
++;      php程序员站
                                                 
$line     =     $this->make_array($tmpLine
);     
                                                 if     (
$next_prev     ==     1)     {     
//     next?      www.phperz.com
                                                                 
if     ($line[$column]     ==     $query_string
)     {     
                                                                                 if     (
$line_key     ==     0
)     {     

phperz.com


                                                                                                 return     
0
;     
                                                                                 }     else     {     
phperz~com

                                                                                                 
$line_key_up     =     $line_key     -     1
;     
                                                                                                 return     
$up_line
;     
www~phperz~com

                                                                                 }     
                                                                 }     else     {     
                                                                                 
$up_line     =     $line
;      www~phperz~com
                                                                 }     
                                                 }     elseif     (
$next_prev     ==     2)     {     
//     prev?     

php程序员站


                                                                 
if     ($line[$column]     ==     $query_string
)     {     
                                                                                 if     (
$line_key     ==     $line_key_end
)     {     

php程序员站


                                                                                                 return     
0
;     
                                                                                 }     else     {      php程序员站
                                                                                                 
$line_key_down     =     $line_key     +     1
;     
                                                                                                 break;     
www~phperz~com

                                                                                 }     
                                                                 }     
                                                 }     else     {      www~phperz~com
                                                                 return     
0
;     
                                                 }     
                                 }      php程序员之家
                                 
$down_line     =     $this->make_array($tline[$line_key_down
]);     
                                 return     
$down_line
;      php程序员之家
                 }     
    
    
}
?>

 
 相关文章
 
发表评论
全部评论(0条)
 
 站内搜索
 热门搜索 基础  mysql  url  adodb
高级搜索 网站地图 站长工具 IP查询 收藏本站
 热点文章
 随机推荐
网站首页 | 网站地图 | 高级搜索 | RSS订阅
PHP程序员站 Copyright © 2007,PHPERZ.COM All Rights Reserved 粤ICP备07503606号 联系站长