中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

文本文件操作的php類

2018-07-20    來源:open-open

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用
 
<?phpclass  CtbClass  {     
    var  $file;             
    var  $index;      
    //建立一個文件并寫入輸入 
    function  null_write($new) {       
        $f=fopen($this->file,"w");               
        flock($f,LOCK_EX);       
        fputs($f,$new);               
        fclose($f);   
    } 
    //  添加數(shù)據(jù)記錄到文件末端 
    function  add_write($new)  { 
        $f=fopen($this->file,"a");          
        flock($f,LOCK_EX);  
        fputs($f,$new); 
        fclose($f);   
    }   
    //  配合readfile()的返回一起使用,把一行數(shù)據(jù)轉(zhuǎn)換為一維數(shù)組 
    function  make_array($line)  {  
        $array  =  explode("\\x0E",$line);  
        return  $array; 
    }  
    //把為一維數(shù)組轉(zhuǎn)換一行數(shù)據(jù) 
    function  join_array($line)  {  
        $array  =  join("\\x0E",$line);  return  $array; 
    } 
    //  返回數(shù)據(jù)文件的總行數(shù) 
    function  getlines()  {  
        $f=file($this->file);          
        return  count($f);         
    }
    //  返回下一行的數(shù)據(jù)記錄(備用) 
    function  next_line()  {  
        $this->index=$this->index++;          
        return  $this->get();         
    }  
    //  返回上一行的數(shù)據(jù)記錄(備用) 
    function  prev_line()  {  
        $this->index=$this->index--;          
        return  $this->get();         
    }     
    //  返回當(dāng)前行的數(shù)據(jù)記錄數(shù)據(jù)較小 
    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;         
    }     
    //  返回當(dāng)前行的數(shù)據(jù)記錄數(shù)據(jù)較大 
    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;         
    }     
    //  打開數(shù)據(jù)文件---以一維數(shù)組返回文件內(nèi)容 
    function  read_file()  {  
        if  (file_exists($this->file))  {   
            $line  =file($this->file);  
        }  
        return  $line; 
    } 
    //  打開數(shù)據(jù)文件---以二維數(shù)組返回文件內(nèi)容 
    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; 
    } 
    //  傳入一個數(shù)組,合并成一行數(shù)據(jù),重寫整個文件 
    function  overwrite($array){  
        $newline  =  implode("\\x0E",$array);   
        $f  =  fopen($this->file,"w");  
        flock($f,LOCK_EX);  
        fputs($f,$newline);  
        fclose($f); 
    }     
    //  添加一行數(shù)據(jù)記錄到文件末端 
    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);   
    }          
        //  插入一行數(shù)據(jù)記錄到文件最前面 
        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); 
        }  
        //  更新所有符合條件的數(shù)據(jù)記錄,適用于每行字節(jié)數(shù)據(jù)較大的情況 
        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); 
        }  
        //  更新所有符合條件的數(shù)據(jù)記錄,適用于每行字節(jié)數(shù)據(jù)較小的情況 
        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); 
        }  
        //  刪除所有符合條件的數(shù)據(jù)記錄,適用于每行字節(jié)數(shù)據(jù)較大的情況 
        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); 
        }          
        //  刪除所有符合條件的數(shù)據(jù)記錄,適用于每行字節(jié)數(shù)據(jù)較小的情況 
        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; 
        }   
        //  根據(jù)數(shù)據(jù)文件的某個字段是否包含$query_string進(jìn)行查詢,以二維數(shù)組返回所有符合條件的數(shù)據(jù) 
        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; 
        }  
        //  根據(jù)數(shù)據(jù)文件的某個字段是否包含$query_string進(jìn)行查詢,以一維數(shù)組返回第一個符合條件的數(shù)據(jù) 
        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; 
        } 
?>
 

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:C#代碼發(fā)送簡單的HTTP請求

下一篇:C#通過List類實現(xiàn)動態(tài)變長數(shù)組