PHP中对文本文件操作很好的类

文本文件分割-php实现 文本文件分割-php实现 有什么用: 呵呵。 <?php ######################################################################## #分割单独文本到片段文本。 #ora 2019.04 #ORA2017@qq.com #license: GPL2 http://www.gnu.org/licenses/old-lic... 阅读详情
?
?
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 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??$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 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??$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类简化了文本文件的基本操作,包括创建、读取、修改和重写文件内容。它支持将文本行转换为数组,读取为一维或二维数组,并允许开发者对数据进行处理后再写回文件。该类有助于提高代码的可维护性和降低错误率,在日志记录、数据存储和配置管理等方面有广泛应用。 1. 文本文件操作的PHP类 在本章中,我们将深入探讨PHP中用于文本文件... 阅读详情

相关推荐

Php操作txt文件类库实现增删改查

该类库实现PHP对TXT文档灵活的增删改查,让txt文档也可以充当数据库的角色。

php文本教学,php中文本操作的类

给大家一个简单的文本操作的类。我以前写的,不过一直都没机会用了,文本不如数据库。数据是以行保存的,以\n结尾,注意你输入的数据必须以"\n"结尾的,这是几个最基本的类成员,文本的特别要注意效率问题,比如你要更新文件的2,3,4行,用:for($i=2;$i<=4;$i++)$this->update($file,$i,$msg);不如这样的:$data=$this->read($...

weixin_39986973的博客 211

PHP文件读写操作之文件读取方法详解

PHP文件读取操作相对于文件写入操作涉及更多的PHP文件操作函数,在代码实例中会详细介绍这些函数。   读取文本文件中存储数据的方式主要涉及的三个步骤及部分文件操作函数如下:   1、打开文件(文件操作函数:fopen)   2、文件数据读取(文件操作函数:fgets、file、readfile、feof等)   3、关闭文件(文件操作函数:fclose)   下面仍然以PHP文件读写操作代码实例讲解文件读取方法的具体应用,在实例中,通过调用不同的PHP文件读取操作函数读取文本文件中的数据,你可以加深PHP文件读取操作函数的理解,以便在PHP网站开发中合理应用。文本文件中写入的数据来自于PHP

PHP中常见文本文件操作总结

请注意,这些只是一些基本的示例,你还可以使用其他函数来处理文件的读取、写入、删除等操作。到此这篇关于PHP中常见文本文件操作总结的文章就介绍到这了,更多相关PHP文件操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。在PHP中,我们可以使用一些内置的函数来进行文本文件操作,本文主要为大家详细介绍了一些常见的文本文件操作,有需要的小伙伴可以参考一下。在PHP中,你可以使用一些内置的函数来进行文本文件操作。一、常见的文本文件操作。一、常见的文本文件操作。

Oona_01的博客 157

PHP文本操作类

复制代码 代码如下:<?php   class CtbClass {               var  $file;                       var  $index;               //建立一个文件并写入输入               function  null_write($new)               {                           $f=fopen($this->file,”w”);                                   flock($f,LOCK_EX);              

成本150元的高性能RDP协议瘦客户机

云终端市场是一个跨度很大的市场。既有数千元的品牌的瘦客户机,也有几百元的瘦客户机,还有200-300元的支持RDP协议的多用户云终端。但是200-300元的多用户终端,在显示性能上不尽人意,一般用于地产中介门店,工厂产线的电子看板等场合。有没有性能更好,价格更低的方案呢? 答案是有。 这个方案就是 二手的x86 瘦客户机 + DoraOS瘦客户机系统免费版(仅支持RDP)。 首先我们看硬件,在某宝搜索 升腾C92 ,找到最低配置的( CPU:J1800,内存:2G,硬盘:8G)。价格都在150以内。

云飞扬的桌面云 7411

PHP中如何操作文件(读取、写入、删除)?

适合一次性读取整个文件内容,返回字符串。无需手动处理文件句柄,适合小文件。直接输出文件内容到输出缓冲区,返回读取字节数。通过灵活组合上述函数,可满足从简单日志记录到复杂文件管理的各类需求。需配合文件句柄操作,适合分块读取大文件。每次读取一行内容,适用于按行处理文本文件(如CSV)。提供更细粒度的控制,如文件锁定。:简洁高效,但内存占用较高,不适用于大文件。:无需缓冲处理,但无法对内容进行中间操作。将文件内容按行存入数组,每行为数组元素。:PHP只能删除运行用户权限内的文件。:需保证数据一致性的高并发写入。

破损的天堂鸟博客 799

来自工业界的知识库 RAG 服务(二),RagFlow 源码全流程深度解析

前面介绍过有道 QAnything 源码解析,通过深入了解工业界的知识库 RAG 服务,得到了不少调优 RAG 服务的新想法。因此本次趁热打铁,额外花费一点时间,深入研究了另一个火热的开源 RAG 服务RagFlow的完整实现流程,希望同样有所收获。首先依旧可以先从框架图入手,与常规的 RAG 架构进行一些比较可以看到右侧知识库被明显放大,同时最右侧详细介绍了文件解析的各种手段,比如OCR等,这些在常规的 RAG 中可能会作为一个不起眼的。

易迟的专栏 2万+

php文本操作,PHP文本操作类_PHP教程

复制代码 代码如下:$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($thi...

weixin_34481252的博客 202

关于影响力最大化问题中贪心算法的一些理解

在影响力最大化问题中(Influence Maximization,以下简称IM),贪心算法是最早提出的一种解决方法,并且一直沿用至今。它基于IM问题所具有的单调性(Monotonicity)和子模性(Submodularity)使用一种Hill Climbing策略,不断使用Monte Carlo模拟来寻找在当前情况下的具有最大传播范围的节点,添加至种子集合,得到最终结果,算法伪代码如下所示: 这里算法1其实并没有使用MonteCarlo模拟,而只是使用了贪心的策略...

nianjuan1990的专栏 2852

SCAN和JTAG分别是什么?它们之间有什么联系与区别?

SCAN(扫描)技术是集成电路测试领域的一种方法,主要用于边界扫描测试(Boundary Scan)。它是在集成电路设计中引入的一种测试结构,允许测试人员通过在芯片的输入/输出引脚上设置和读取特殊寄存器(边界扫描寄存器,BSR)的内容,来间接测试电路板上的互联和芯片内部功能块。这种方式可以在不接触其他内部节点的情况下测试整个电路板的连接性,极大地提高了测试覆盖率和可诊断性。JTAG(Joint Test Action Group,联合测试行动小组)则是开发并推广边界扫描测试标准的一个组织。

初心不忘产学研的博客 2542

对文本文件操作很好的类(PHP)

from  CTB   class  CtbClass  {              var  $file;                     var  $index;              //建立一个文件并写入输入             function  null_write($new)             {                         $f=fope

键步随风 913

手把手教你用Python 3.11和Node.js 18在Windows 11上搭建Dify开发环境

本文提供了一份详尽的Windows 11本地Dify开发环境搭建指南。文章手把手教你完成从Python 3.11、Node.js 18的安装配置,到PostgreSQL、Redis数据库服务的部署,再到前后端服务的启动与联调的全过程,并包含常见问题排查与效能优化建议,旨在帮助开发者构建一个稳定、可调试的Dify本地开发环境。

fire9的博客 645

PHP文本文件操作类

class  CtbClass  {              var  $file;                     var  $index;              //建立一个文件并写入输入             function  null_write($new)             {                         $f=fopen($this->fil

sunnykobe8的专栏 1398

TCP报文 Flood攻击原理与防御方式

TCP交互过程中包含SYN、SYN-ACK、ACK、FIN和RST报文,这几类报文也可能会被攻击者利用,海量的攻击报文会导致被攻击目标系统资源耗尽、网络拥塞,无法正常提供服务。接下来我们介绍几种常见的Flood攻击的原理和防御方式。

qq_32044265的博客 4219

李航《统计学习方法》课后习题答案(第2版)

李航《统计学习方法》课后习题答案(第2版) 章节 链接 第1章 统计学习及监督学习概论 点击进入 第2章 感知机 点击进入 第3章 k近邻法 点击进入 第4章 朴素贝叶斯法 点击进入 第5章 决策树 点击进入 第6章 逻辑斯谛回归与最大熵 点击进入 第7章 支持向量机 点击进入 第8章 提升方法 点击进入 第9章 EM算法及其推广 点击进入 第10章 隐马尔可夫模型 点击进入 第11章 条件随机场 点击进入     也可进入我的个人主页查看分类专栏

weixin_43646592的博客 2万+

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

复制代码 代码如下:

weixin_42520025的博客 218

【05】昊一源科技——昊一源科技 嵌入式笔试, 校招,题目记录及解析

本文记录了昊一源科技嵌入式校招笔试题目及解析,涵盖计算机基础、汇编语言、网络协议、C语言编程等内容。主要包括:1)补码真值计算;2)MCS51汇编指令执行后寄存器状态;3)网络广播地址计算;4)TCP协议特点;5)C语言三目运算符应用;6)宏定义优先级问题;7)字符指针与数组的区别;8)C++静态成员变量应用;9)三位完全平方数查找程序。题目难度适中,涉及嵌入式开发常见知识点,对求职者基础能力考察全面。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1307

php文本文件操作和php文本文件操作像数据库一样操

请注意,这些只是一些基本的示例,你还可以使用其他函数来处理文件的读取、写入、删除等操作。另外,在进行文件操作时,确保你对文件具有适当的权限,并妥善处理可能出现的错误。现在这些函数会返回相应的结果字符串,你可以将其赋值给变量或直接在需要的地方使用。调用函数后,你可以根据返回的结果决定如何处理显示或响应。

php-yyds 491

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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_w...

weixin_36254564的博客 124

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

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->fi...

weixin_29363791的博客 125

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 做个时间的管理高手
下一篇: JAVA学习,是一条漫长的道路(蔡学镛)
cfyy
博客等级 码龄22年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值