日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php文本文件操作,文本文件操作的php类

發(fā)布時間:2024/9/27 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php文本文件操作,文本文件操作的php类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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();

}

// 返回當前行的數(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;

}

// 返回當前行的數(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

$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

$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進行查詢,以二維數(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進行查詢,以一維數(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; } ?>

總結(jié)

以上是生活随笔為你收集整理的php文本文件操作,文本文件操作的php类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。