通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>在线服务>>疑难解答>>正文 新版上线![旧版]
注:打开慢时请稍等

对文本文件操作很好的类

http://www.iyit.net  日期:2006-10-6 15:33:10  来源:iyit.net收集  点击:
参加讨论
 
from  ctb  
 
class  ctbclass  {  
 
           var  $file;          
           var  $index;      
 
       //建立一个文件并写入输入  
           function  null_write($new)  
           {  
                       $f=fopen($this->file,"w");          
                       flock($f,lock_ex);  
                       fputs($f,$new);          
                       fclose($f);    
           }  
           //  添加数据记录到文件末端  
           function  add_write($new)  {            
                       $f=fopen($this->file,"a");          
                       flock($f,lock_ex);  
                       fputs($f,$new);            
                       fclose($f);    
           }    
           //  配合readfile()的返回一起使用,把一行数据转换为一维数组  
           function  make_array($line)  {  
                       $array  =  explode("\x0e",$line);  
                       return  $array;  
           }  
             
           //把为一维数组转换一行数据  
           function  join_array($line)  {  
                       $array  =  join("\x0e",$line);  
                       return  $array;  
           }  
           //  返回数据文件的总行数  
           function  getlines()  {  
                       $f=file($this->file);          
                       return  count($f);          
           }  
           //  返回下一行的数据记录(备用)  
           function  next_line()  {  
                       $this->index=$this->index++;          
                       return  $this->get();          
           }  
 
           //  返回上一行的数据记录(备用)  
           function  prev_line()  {  
                       $this->index=$this->index--;          
                       return  $this->get();          
           }      
           //  返回当前行的数据记录数据较小  
           function  get()  {  
                       $f=fopen($this->file,"r");          
                       flock($f,lock_sh);  
                       for($i=0;$i<=$this->index;$i++)  {  
                                   $rec=fgets($f,1024);          
                       }  
                       $line=explode("\x0e",$rec);  
                       fclose($f);  
                       return  $line;          
           }      
           //  返回当前行的数据记录数据较大  
           function  get_big_file()  {  
                       $f=fopen($this->file,"r");          
                       flock($f,lock_sh);  
                       for($i=0;$i<=$this->index;$i++)  {  
                                   $rec=fgets($f,1024*5);          
                       }  
                       $line=explode("\x0e",$rec);  
                       fclose($f);  
                       return  $line;          
           }      
           //  打开数据文件---以一维数组返回文件内容  
           function  read_file()  {  
                       if  (file_exists($this->file))  {  
                                   $line  =file($this->file);  
                       }  
                       return  $line;  
           }  
           //  打开数据文件---以二维数组返回文件内容  
           function  openfile()  {  
                       if  (file_exists($this->file))  {  
                                   $f  =file($this->file);  
                                   $lines  =  array();  
                                   foreach  ($f  as  $rawline)  {  
                                               $tmpline  =  explode("\x0e",$rawline);  
                                               array_push($lines,  $tmpline);  
                                   }  
                       }  
                       return  $lines;  
           }  
           //  传入一个数组,合并成一行数据,重写整个文件  
           function  overwrite($array){  
                       $newline  =  implode("\x0e",$array);              
                       $f  =  fopen($this->file,"w");  
                       flock($f,lock_ex);  
                       fputs($f,$newline);  
                       fclose($f);  
           }  
     
           //  添加一行数据记录到文件末端  
           function  add_line($array,$check_n=1)  {      
                       $s=implode("\x0e",$array);          
                       $f=fopen($this->file,"a");          
                       flock($f,lock_ex);  
                       fputs($f,$s);          
                       if  ($check_n==1)  fputs($f,"\n");          
                       fclose($f);    
           }          
 
           //  插入一行数据记录到文件最前面  
           function  insert_line($array)  {  
                       $newfile  =  implode("\x0e",$array);  
                       $f  =  fopen($this->file,"r");  
                       flock($f,lock_sh);  
                       while  ($line  =  fgets($f,1024))  {  
                                   $newfile  .=  $line;  
                       }  
                       fclose($f);  
                       $f  =  fopen($this->file,"w");  
                       flock($f,lock_ex);  
                       fputs($f,$newfile);  
                       fclose($f);  
           }  
 
           //  更新所有符合条件的数据记录,适用于每行字节数据较大的情况  
           function  update($column,$query_string,$update_array)  {  
                       $update_string  =  implode("\x0e",$update_array);        
                       $newfile  =  "";              
                       $fc=file($this->file);  
                       $f=fopen($this->file,"r");  
                       flock($f,lock_sh);  
                       for  ($i=0;$i<count($fc);$i++)  {  
                                   $list  =  explode("\x0e",$fc[$i]);  
                                   if  ($list[$column]  !=  $query_string)  {  
                                               $newfile  =  $newfile.chop($fc[$i])."\n";  
                                   }  else  {  
                                               $newfile  =  $newfile.$update_string;  
                                   }  
                       }  
                       fclose($f);  
                       $f=fopen($this->file,"w");  
                       flock($f,lock_ex);  
                       fputs($f,$newfile);  
                       fclose($f);  
           }  
 
           //  更新所有符合条件的数据记录,适用于每行字节数据较小的情况  
           function  update2($column,$query_string,$update_array)  {  
                       $newline  =  implode("\x0e",$update_array);        
                       $newfile  =  "";  
                       $f  =  fopen($this->file,"r");  
                       flock($f,lock_sh);  
                       while  ($line  =  fgets($f,1024))  {  
                                   $tmpline  =  explode("\x0e",$line);  
                                   if  ($tmpline[$column]  ==  $query_string)  {  
                                               $newfile  .=  $newline;  
                                   }  else  {  
                                               $newfile  .=  $line;  
                                   }  
                       }  
                       fclose($f);  
                       $f  =  fopen($this->file,"w");  
                       flock($f,lock_ex);  
                       fputs($f,$newfile);  
                       fclose($f);  
           }  
 
           //  删除所有符合条件的数据记录,适用于每行字节数据较大的情况  
           function  delete($column,$query_string)  {  
                       $newfile  =  "";              
                       $fc=file($this->file);  
                       $f=fopen($this->file,"r");  
                       flock($f,lock_sh);  
                       for  ($i=0;$i<count($fc);$i++)  {  
                                   $list  =  explode("\x0e",$fc[$i]);  
                                   if  ($list[$column]  !=  $query_string)  {  
                                               $newfile  =  $newfile.chop($fc[$i])."\n";  
                                   }  
                       }  
                       fclose($f);  
                       $f=fopen($this->file,"w");  
                       flock($f,lock_ex);  
                       fputs($f,$newfile);  
                       fclose($f);  
           }          
 
           //  删除所有符合条件的数据记录,适用于每行字节数据较小的情况  
           function  delete2($column,$query_string){      
                       $newfile  =  "";  
                       $f  =  fopen($this->file,"r");  
                       flock($f,lock_sh);  
                       while  ($line  =  fgets($f,1024))  {  
                                   $tmpline  =  explode("\x0e",$line);  
                                   if  ($tmpline[$column]  !=  $query_string)  {  
                                               $newfile  .=  $line;  
                                   }  
                       }  
                       fclose($f);  
                       $f  =  fopen($this->file,"w");  
                       flock($f,lock_ex);  
                       fputs($f,$newfile);  
                       fclose($f);  
           }  
 
       //取得一个文件里某个字段的最大值  
           function  get_max_value($column)  {  
                       $tlines  =  file($this->file);  
                       for  ($i=0;$i<=count($tlines);$i++)  {  
                                   $line=explode("\x0e",$tlines[$i]);  
                                   $get_value[]=$line[$column];  
                       }  
               $get_max_value  =  max($get_value);  
                       return  $get_max_value;  
           }  
 
 
           //  根据数据文件的某个字段是否包含$query_string进行查询,以二维数组返回所有符合条件的数据  
           function  select($column,  $query_string)  {  
                       $tline  =  $this->openfile();  
                       $lines  =  array();  
                       foreach  ($tline  as  $line)  {  
                                   if  ($line[$column]  ==  $query_string)  {  
                                               array_push($lines,  $line);  
                                   }  
                       }  
 
                       return  $lines;  
           }  
 
           //  功能与function  select()一样,速度可能略有提升  
           function  select2($column,  $query_string)  {  
                       if  (file_exists($this->file))  {  
                                   $tline  =  $this->read_file();  
                                   foreach  ($tline  as  $tmpline)  {  
                                               $line  =  $this->make_array($tmpline);  
                                               if  ($line[$column]  ==  $query_string)  {  
                                                           $lines[]=$tmpline;  
                                               }  
                                   }  
                       }  
 
                       return  $lines;  
           }  
 
           //  根据数据文件的某个字段是否包含$query_string进行查询,以一维数组返回第一个符合条件的数据  
           function  select_line($column,  $query_string)  {  
                       $tline  =  $this->read_file();  
                       foreach  ($tline  as  $tmpline)  {  
                                   $line  =  $this->make_array($tmpline);  
                                   if  ($line[$column]  ==  $query_string)  {  
                                       return  $line;  
                                               break;  
                                   }  
                       }  
           }  
           //  select  next/prev  line(next_prev  ==>  1/next,  2/prev)  by  cx  
           function  select_next_prev_line($column,  $query_string,  $next_prev)  {  
                       $tline  =  $this->read_file();  
                       $line_key_end  =  count($tline)  -  1;  
                       $line_key  =  -1;  
                       foreach  ($tline  as  $tmpline)  {  
                                   $line_key++;  
                                   $line  =  $this->make_array($tmpline);  
                                   if  ($next_prev  ==  1)  {    //  next?  
                                               if  ($line[$column]  ==  $query_string)  {  
                                                           if  ($line_key  ==  0)  {  
                                                                       return  0;  
                                                           }  else  {  
                                                                       $line_key_up  =  $line_key  -  1;  
                                                                       return  $up_line;  
                                                           }  
                                               }  else  {  
                                                           $up_line  =  $line;  
                                               }  
                                   }  elseif  ($next_prev  ==  2)  {    //  prev?  
                                               if  ($line[$column]  ==  $query_string)  {  
                                                           if  ($line_key  ==  $line_key_end)  {  
                                                                       return  0;  
                                                           }  else  {  
                                                                       $line_key_down  =  $line_key  +  1;  
                                                                       break;  
                                                           }  
                                               }  
                                   }  else  {  
                                               return  0;  
                                   }  
                       }  
                       $down_line  =  $this->make_array($tline[$line_key_down]);  
                       return  $down_line;  
           }  
 
 
 
}  


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:作出一张图片的缩略图
下一篇:请问“第 1 2 3 ...页”这种分页显示怎么做?
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
我在windows  xp上安装apache2.044+ph
apache+php,怎样打开session支持??
在linux中怎么配置pdflib和php  高分!
怎么样同时解释.php和.php3的文件呀,
php 4.1.0 及以后版本使用post变量的接
我在windows  xp上安装apache2.044+ph
apache+php,怎样打开session支持??
在linux中怎么配置pdflib和php  高分!
怎么样同时解释.php和.php3的文件呀,
php 4.1.0 及以后版本使用post变量的接
apache2-win32+php的成功安装方法
我只是想在本地机上学习php ,还要安装
装了php。运行时出现在以下提示
如何安装apache2.0
怎么删除mysql???
我在windows  xp上安装apache2.044+ph
apache+php,怎样打开session支持??
如何实现注册时的确认码功能
请帮忙解决,图随机上传,不限量,定位
有没有很好方法,获得在线登陆用户名单
qq密码被盗怎么办!我教你找回密码
如何控制我的电脑只允许登录我自己的q
qq2006 beta3隆重发布 实用功能一一奉
美国微软总部相中重庆15岁网络奇才(图
百度声明称遭受有史以来最大规模黑客攻
被删除系统文件恢复全攻略
使用身份验证来禁止内部用户上网 
国内首次发现带有感染文件特征盗号病毒
06年08月31日石家庄太和 内存报价
用css控制透明图片 
exeplorer.exe错误的问题的总结、解决
三分钟让你的系统变处女:acronis tru
让你的密码成为黑客的“耻辱”
比较sql server2005和oracle 10g r2
比较sql server2005和oracle 10g r2
sql server2005的xml数据类型之基础篇
sql server服务器的“偷梁换柱”
在win2003下mysql数据库每天自动备份
win2000 apache php mysql 安装及安全
mysql账户相关
快速安装windows操作系统独家秘籍
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息