A class that is working in a text file in PHP

zhaozj2021-02-16  100

A class that is working in a text file in PHP

?

This article is reproduced from:

http://blog.9cbs.net/whzhaha/archive/2004/08/02/58825.aspx

?

Class? CTBClass? {?

?

?????? var? $ file;?????

??????? $ index;????

?

?? // Establish a file and write it?

?????? function? NULL_WRITE ($ NEW)?

?????? {????

???????????? $ f = fopen ($ this-> file, "w");????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????? fputs ($ f, $ new);?????

????????????? fclose ($ f);??

??????}?

?????? //? Add data to the end of the file?

?????? function? add_write ($ new)? {????

???????????? $ f = fopen ($ this-> file, "a");????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????? fputs ($ f, $ new);??????

????????????? fclose ($ f);??

??????}??

?? ?? ?? //? With the returning of readfile (), convert a line of data to a one-dimensional array?

?????? function? make_Array ($ line)? {?

???????????? $ array? =? EXPLODE ("/ x0e", $ line);?

???????????? Return? $ array;?

??????}?

?????????

???? ?? // convert a row of data for a one-dimensional array?

?????? function? join_Array ($ line)? {?

??????????? $ array? =? join ("/ x0e", $ line);?

???????????? Return? $ array;?

??????}?

?????? //? Return to the total number of data files?

?????? function? getLines ()? {?

??????????? $ f = file ($ this-> file);?????

???????????? Return? count ($ f);?????

??????}?

???? ?? //? Return to the next line of data record (alternate)?

?????? function? next_line ()? {?

???????????? $ this-> index = $ this-> index ;????

???????????? Return? $ this-> get ();?????

??????}?

?

???? ?? //? Return to the data record (standby)?

?????? function? prev_line ()? {??? ?????????? $ this-> index = $ this-> index -;??? ?

???????????? Return? $ this-> get ();?????

??????}????

?????? //? Returns the data record data of the current line?

?????? function? get ()? {?

??????????? $ f = fopen ($ this-> file, "r");????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????? for ($ i = 0; $ i <= $ this-> index; $ i )? {?

????????????? $ rec = fgets ($ F, 1024);?????

???????????????

??????????????????

????????????? fclose ($ f);?

???????????? Return? $ line;?????

??????}????

?????? //? Returns the data record data of the current line?

?????? function? get_big_file ()? {?

??????????? $ f = fopen ($ this-> file, "r");????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????? for ($ i = 0; $ i <= $ this-> index; $ i )? {?

???????????????? $ rec = fgets ($ F, 1024 * 5);????

???????????????

??????????????????

????????????? fclose ($ f);?

???????????? Return? $ line;?????

??????}????

???? ?? //? Open a data file --- Return to file content with a one-dimensional array?

?????? function? {? {?

????????????? (file_exists ($ this-> file)? {?

???????????????????????

???????????????

???????????? Return? $ line;?

??????}?

?????? //? Open a data file --- Return to the file in two-dimensional array?

?????? function? OpenFile ()? {?

????????????? (file_exists ($ this-> file)? {?

????????????????? $ f? = file ($ this-> file); ???????????? ????????? $ lines? =? array ();?

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????????? $ tmpline? =? EXPLODE ("/ x0e", $ rawline);?

????????????????? array_push ($ LINES, $ tmpline);?

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????

???????????? Return? $ LINES;?

??????}?

???? ?? //? Incorporate an array, merge into a line of data, rewrote the entire file?

?????? function? Overwrite ($ array) {?

???????????? $ newline? =? Implode ("/ x0e", $ array); ???????

???????????? $ f? =? FOPEN ($ this-> file, "w");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????? fputs ($ f, $ newline);?

????????????? fclose ($ f);?

??????}?

????

???? ?? //? Add a line of data to the end of the file?

???? ?? function? add_line ($ Array, $ Check_n = 1)? {???

???????????? $ s = IMPLODE ("/ x0e", $ array);?????

???????????? $ f = fopen ($ this-> file, "a");????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????? fputs ($ f, $ s);?????

??????????? i? ($ check_n == 1)? FPUTS ($ f, "/ n");?????

????????????? fclose ($ f);??

??????}?????

?

?????? //? Insert a line of data records to the front of the file?

???? ?? function? INSERT_LINE ($ array)? {?

???????????? $ newfile? =? Implode ("/ x0e", $ array);?

???????????? $ f? =? FOPEN ($ this-> file, "r");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????? ($ line? =? FGETS ($ f, 1024))? {?

???????????? $ newfile? =? $ line; ??? ???????????? }?

????????????? fclose ($ f);?

???????????? $ f? =? FOPEN ($ this-> file, "w");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????? fclose ($ f);?

??????}?

?

?? ?? ?? //? Update all the requirements for data records, apply to a larger case in one line byte data?

???? ?? function? Update ($ column, $ query_string, $ update_array)? {?

???????????? $ update_string? =? Implode ("/ x0e", $ update_Array);????

???????????? $ newfile? =? ""; ???????

???????????? $ fc = file ($ this-> file);?

???????????? $ f = fopen ($ this-> file, "r");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????? for? ($ i = 0; $ i)

???????????????? $ list? =? EXPLODE ("/ x0e", $ fc [$ i]);?

?????????????? ($ list [$ colorn]?! =? $ query_string)? {?

????????????????? $ newfile? =? $ newfile.chop ($ FC [$ I]). "/ n";?

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????????? $ newfile? =? $ newfile. $ update_string;?

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????

????????????? fclose ($ f);?

???????????? $ f = fopen ($ this-> file, "w");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????? fclose ($ f);?

??????}?

?

?????? //? Update all the qualified data records, apply to a small amount of data per line byte?

???? ?? function? Update2 ($ column, $ query_string, $ update_array)? {?

???????????? $ newline? =? Implode ("/ x0e", $ update_array);??????????????? ? $ newfile? =? "";?

???????????? $ f? =? FOPEN ($ this-> file, "r");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????? ($ line? =? FGETS ($ f, 1024))? {?

??????????????? $ tmpline? =? EXPLODE ("/ x0e", $ line);?

????????????? i? ($ TMPLINE [$ column]? ==? $ query_string)? {?

????????????????? $ newfile? =? $ newline;?

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????????? $ newfile? =? $ line;?

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????

????????????? fclose ($ f);?

???????????? $ f? =? FOPEN ($ this-> file, "w");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????? fclose ($ f);?

??????}?

?

???? ?? //? Delete all the requirements of the requirements, apply to a larger case in each line byte data?

???? ?? function? DELETE ($ column, $ query_string)? {?

???????????? $ newfile? =? ""; ???????

???????????? $ fc = file ($ this-> file);?

???????????? $ f = fopen ($ this-> file, "r");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????? for? ($ i = 0; $ i)

???????????????? $ list? =? EXPLODE ("/ x0e", $ fc [$ i]);?

?????????????? ($ list [$ colorn]?! =? $ query_string)? {?

????????????????? $ newfile? =? $ newfile.chop ($ FC [$ I]). "/ n";?

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????? fclose ($ f);?

???????????? $ f = fopen ($ this-> file, "w");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????? fclose ($ f);?

??????}?????

?

?? ?? ?? //? Delete all qualified data records, suitable for a small amount of data per line byte data?

?????? function? delete2 ($ column, $ query_string) {???

????????????? $ newfile? =? "";?

???????????? $ f? =? FOPEN ($ this-> file, "r");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????? ($ line? =? FGETS ($ f, 1024))? {?

??????????????? $ tmpline? =? EXPLODE ("/ x0e", $ line);?

?????????????? ($ tmpline [$ colorn]?! =? $ query_string)? {?

????????????????? $ newfile? =? $ line;?

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????

????????????? fclose ($ f);?

???????????? $ f? =? FOPEN ($ this-> file, "w");?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????? fclose ($ f);?

??????}?

?

?? // Get the maximum value of a field in a file?

???? ?? function? get_max_value ($ colorn)? {?

???????????? $ tlines? =? file ($ this-> file);?

???????????? for? ($ i = 0; $ i <= count ($ tlows); $ i )? {?

????????????????????????

???????????????? $ get_value [] = $ line [$ colorn];?

???????????????

??? $ get_max_value? =? max ($ get_value);?

???????????? Return? $ get_max_value;?

??????}?

?

?

?? ?? ?? //? Whether to query $ query_string based on a field of the data file, return all the requirements for all eligible data in two-dimensional array ??? ?? ?? function? SELECT ($ column ,? $ query_string)? {?

???????????? $ tline? =? $ this-> openfile ();?

???????????? $ lines? =? array ();?

???????????? foreach? ($ tline? as? $ line)? {?

?????????????? i? ($ line [$ column]? ==? $ query_string)? {?

?????????????????? array_push ($ LINES, $ LINE);?

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????

?

???????????? Return? $ LINES;?

??????}?

?

???? ?? //? Function like Function? SELECT (), maybe the speed may increase slightly?

?????? function? SELECT2 ($ column, $ query_string? {?

????????????? (file_exists ($ this-> file)? {?

?????????????????? $ tline? =? $ this-> rd ();?

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????????? $ line? =? $ this-> make_Array ($ tmpline);?

??????????????????,? ($ tine [$ colorn]? ==? $ query_string)? { ?

???????????????????????? $ lines [] = $ tmpline;?

?????????????????????

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????

?

???????????? Return? $ LINES;?

??????}?

?

?? ?? ?? //? Whether to query $ query_string based on a field of the data file, return the first eligible data with a one-dimensional array?

?????? function? SELECT_LINE ($ column,? $ query_string)? {?

???????????? $ tline? =? $ this-> ied_file ();?

???????????? foreach? ($ tline? as? $ tmpline)? {?

?? ????????????????? $ line? =? $ this-> make_Array ($ tmpline);?

????????????? i? ($ line [$ column]? ==? $ query_string)? {??? ?? ??? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????

??????}?

?????? //? SELECT? NEXT / prev? line (next_prev? ==>? 1 / next,? 2 / prev)? BY? CX?

???? ?? function? SELECT_NEXT_PREV_LINE ($ column, $ query_string,? $ nEXT_PREV)? {?

???????????? $ tline? =? $ this-> ied_file ();?

????????????????? -?? -? 1;?

???????????? $ line_key? =? -1;?

???????????? foreach? ($ tline? as? $ tmpline)? {?

??????????????????????

?? ????????????????? $ line? =? $ this-> make_Array ($ tmpline);?

????????????? i? ($ next_prev? ==? 1)? {? //? next??

??????????????????,? ($ tine [$ colorn]? ==? $ query_string)? { ?

???????????????????????? i ($ line_key? ==? 0 )? {?

??????????????????????? Return?????? 0;?

???????????????????????????

?????????????????????????????? $ line_key_up ? =? $ line_key? -? 1;?

??????????????????????? Return?????? $ UP_LINE;?

????????????????????????????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????? $ up_line? =? $ line;?

?? ????????????????????????? ?? ?? ??}? Elseif? ($ next_prev? ==? 2)? {?? //? prev??

??????????????????,? ($ tine [$ colorn]? ==? $ query_string)? { ?

?????????????????????????, ($ line_key? ==? $ LINE_KEY_END? {?

??????????????????????? Return?????? 0;?

???????????????????????????

??????????????????????????????? $ line_key_down ? =? $ line_key? ? 1;?

?????????????????????????????????? ?

????????????????????????????

?????????????????????

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????? Return? 0;?

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????

???????????? $ down_LINE? =? $ this-> make_array ($ tline [$ line_key_down]);?

???????????? Return? $ down_line;?

??????}?

?

?

?

} ??

转载请注明原文地址:https://www.9cbs.com/read-10887.html

New Post(0)