-
- var $file
- var $index
- //파일 생성 및 입력
- 함수 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");
- 군중($f,LOCK_EX);
- fputs($f,$new)
- fclose($f)
- }
- // ) 데이터 행을 1차원 배열로 변환하려면 Return과 함께 사용하세요.
- function make_array($line) {
- $array =explore("\x0E",$line)
- return $array ;
- }
- //한 행의 데이터를 1차원 배열로 변환
- function Join_array($line) {
- $array = Join("\x0E",$line); 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()
- }
- // 현재 행의 데이터 레코드를 반환합니다.
- 함수 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); f);
- return $line;
- }
- // Return 현재 행의 데이터 레코드가 더 큽니다.
- function get_big_file() {
- $f=fopen($this-> 파일,"r");
- 군중($f,LOCK_SH)
- for($i=0;$i<=$this->index;$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)
- $lines = array()
- foreach ($f as $rawline) {
- $tmpline =explore("\x0E",$rawline); array_push($lines, $tmpline)
- }
- }
- return $lines;
- }
- // 배열을 전달하고 이를 한 줄의 데이터로 병합한 후 전체 파일을 다시 작성합니다.
- function overwrite($array){
- $newline = implode( "\x0E",$array);
- $f = fopen($this->file,"w")
- 떼($f,LOCK_EX)
- fputs($f,$newline) );
- fclose($f);
- }
- // 파일 끝에 데이터 레코드 한 줄 추가
- function add_line( $array,$check_n=1) {
- $s=implode("\x0E",$array);
- $f=fopen($this->file,"a")
- 떼($f,LOCK_EX); $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); 새 파일);
- 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" ) ;
- 군중($f,LOCK_SH);
- for ($i=0;$i $list =explore("\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 =explore("\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 $list = 폭발("\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 =explore("\x0E",$line); ($tmpLine[$column] != $query_string) {
- $newfile .= $line
- }
- }
- fclose($f)
- $f = fopen( $this ->file,"w");
- Flock($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이 포함되어 있는지 여부를 기반으로 쿼리하여 2차원으로 반환합니다. array 기준에 맞는 모든 데이터
- 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[$ 열] == $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)
- if ($line[$column] == $query_string)
- return $line;
- break;
- }
- }
- }
- // cx로 다음/이전 줄 선택(next_prev ==> 1/next, 2/prev)
- function select_next_prev_line($column, $query_string, $next_prev) {
- $tline = $this->read_file()
- $line_key_end = count($tline) -
- $line_key; = -1 ;
- foreach ($tline as $tmpLine) {
- $line_key
- $line = $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;
- }
- } else {
- $up_line = $line
- }
- } elseif ($next_prev == 2) {
- // 이전?
- if ($line[$column] == $query_string) {
- if ($line_key == $line_key_end) {
- return 0; else {
- $line_key_down = $line_key 1;
- }
- }
- } else {
- 0
- }
- $down_line = $this ->make_array($tline[$line_key_down]);
- return $down_line; }
- ?>
-
-
-
-
- 코드 복사
-
-
-
텍스트 파일, PHP
|