php 文字操作類別實例程式碼
這篇文章主要介紹了PHP實現的文件操作類別及文件下載功能,結合實例形式分析了php針對文件的讀、寫、創建及下載等功能實現技巧,需要的朋友可以參考下
<?php 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; } } ?>
以上是php 文字操作類別實例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。
