- var $file;
- var $index;
- // ファイルを作成し、入力を書き込みます
- function null_write($new) {
- $f=fopen($this-> file) ,"w");
- flock($f,$new);
- fclose($f); // ファイルの末尾にデータレコードを追加します
- function add_write( $new ) {
- $f=fopen($this->file,"a");
- fputs($f,$new); }
- // readfile() の return とともに使用され、データ行を 1 次元配列に変換します
- function make_array($line) {
- $array =explode("\x0E",$line)
- return $array); ;
- }
- / / 1行のデータを1次元配列に変換します
- function join_array($line) {
- $array = join("\x0E",$line)
- }
- // Returnデータファイルの総行数
- function getlines () {
- $f=file($this->file)
- return count($f); // 次の行のデータレコードを返します。 (backup)
- function next_line() {
- $this-> ;index=$this->index++;
- return $this->get(); }
- // 前の行のデータ レコードを返す (backup) )
- function prev_line() {
- $this->index=$ this->get();
- }
- // 現在の行のデータ レコードを返します。データが小さい
- function get() {
- $f=fopen($this-> file,"r");
- for($i=0;$i $rec=fgets($f,1024) ;
- $line=explode("\x0E",$rec);
- return $line;
- }
- // 現在の行のデータレコードを返します
- function get_big_file() {
- $f=fopen($this->file,"r");
- flock($f,LOCK_SH); ;
- for($i=0;$iindex;$i++) {
- $rec=fgets($f,1024*5) }
- $line=explode("\x0E") ,$rec);
- fclose($f);
- return $line; }
- // ファイルの内容を 1 次元配列として返します
- function read_file() {
- if (file_exists($) this->file)) {
- $line =file($this->file);
- return $ line
- }
- // データ ファイルを開きます --- ファイルの内容を 2 次元として返します配列
- function openFile() {
- if (file_exists($this->file)) {
- $f =file($this->file)
- foreach ($f as $); rawline) {
- $tmpline =explode("\x0E",$rawline);
- array_push($lines, $tmpline)
- }
- }
- return $lines }
- // 配列を渡してマージします。 1 行のデータを書き換え、ファイル全体を書き換えます
- function overwrite($array){
- $newline = implode("\x0E",$array);
- $ f = fopen($this->file,"w") ;
- flock($f,LOCK_EX);
- fputs($f,$newline);
- }
- // ファイルの末尾にデータ Record を追加します
- 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");
- }
- // データ レコードの行をファイルの先頭
- function insert_line($array) {
- $newfile = implode("\x0E",$array)
- $f = fopen($this->file,"r") ; ,LOCK_SH);
- while ($line = fgets($f,1024)) {
- $newfile .= $line; }
- $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);
- flock($f,LOCK_SH); ($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,$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 = ("\x0E",$line);
- if ($tmpLine[$column] == $query_string) {
- $newfile .= $newline; } else {
- $newfile .= $line; fclose($f);
- $f = fopen($this->file,"w");
- fputs($f,$newfile); this->file);
- $f=fopen($this->file,"r");
- for ($i=0;$i $list =explode("\x0E",$fc[$i]);
- if ($list[$column] != $query_string) {
- $newfile = $newfile.chop($ fc) [$i])."\n";
- }
- }
- fclose($f);
- flock($f,LOCK_EX); fputs($f,$newfile);
- fclose($f);
- }
- // 行あたりのバイト データが小さい場合に適した、すべての修飾されたデータ レコードを削除します
- function delete2($column,$query_string ){
- $newfile = "";
- $f = fopen($this->file,"r");
- while ($line = fgets($f,1024)); tmpLine =explode("\x0E",$line);
- if ($tmpLine[$column] != $query_string) {
- $newfile .= $line; }
- }
- fclose($f); = fopen($this->file,"w");
- flock($f,$newfile);
- fclose($f); // 最大値を取得ファイル内のフィールドの
- function get_max_value($column) {
- $tlines = file($this->file);
- for ($i=0;$i $line=explode("\x0E",$tlines[$i]);
- $get_value[]=$line[$column];
- $get_max_value = max($get_value); }
- // データ ファイル内のフィールドに $query_string が含まれているかどうかに基づいてクエリを実行し、修飾されたすべてのデータを 2 次元配列で返します
- function select($column, $query_string) {
- $tline = $this-> ;openfile ();
- $lines = array();
- foreach ($tline as $line) {
- if ($line[$column] == $query_string) {
- array_push($lines, $line);
- $lines を返す
- }
- // 関数は関数 select() と同じですが、速度がわずかに向上する可能性があります
- function select2($column, $query_string) {
- if (file_exists($this->file)) {
- $tline = $ this-> read_file();
- foreach ($tline として $tmpLine) {
- $line = $this->make_array($tmpLine);
- if ($line[$column] == $query_string); Lines[]= $tmpLine;
- }
- }
- }
- return $lines;
- }
- // データファイル内のフィールドに $query_string が含まれているかどうかに基づいてクエリを実行し、1 次元配列で最初の修飾されたデータを返します
- function select_line($ column, $query_string) {
- $tline = $this->read_file();
- foreach ($tline as $tmpLine) {
- $line = $this->make_array($tmpLine); ($line[ $column] == $query_string) {
- return $line;
- Break; }
- }
- }
- // 次の行/前の行を選択します(next_prev ==> 1/next, 2/prev) cx
- function select_next_prev_line ($column, $query_string, $next_prev) {
- $tline = $this->read_file();
- $line_key = -1; $tline as $ tmpLine) {
- $line_key++;
- $this->make_array($tmpLine);
- if ($next_prev == 1) {
- if ($line[$column] == $query_string ) {
- if ($line_key == 0) {
- return 0; } else {
- $line_key_up = $line_key - 1;
- return $up_line;
- $up_line = $line ;
- }
- } elseif ($next_prev == 2) {
- // 前? if ($line[$column] == $query_string) {
- return 0; } else {
- $line_key_down = $line_key + 1;
- ブレーク
- }
- }
- } else {
- return 0; }
- }
- $down_line = $this->make_array($tline[$line_key_down]);
- $down_line を返す
- }
- ?>
-
-
-
-
- コードをコピーします
-
-
-
-
-
-
-
テキストファイル、php
-
-
-
|