发布网友 发布时间:2022-04-06 00:36
共2个回答
懂视网 时间:2022-04-06 04:57
php删除文本文件中的任意行的方法:1、指定操作文件与要删除的行数;2、读取文件数据到数组中;3、删除文件中的指定行;4、重新整理文件数据;5、将删除数据后的文件重新写入原文件。
代码实现:
(推荐教程:php视频教程)
<? php $filename = " aaa.txt " ; // 定义操作文件 $delline = 3 ; // 要删除的行数 $farray = file ( $filename ); // 读取文件数据到数组中 for ( $i = 0 ; $i < count ( $farray ); $i ++ ) { if ( strcmp ( $i + 1 , $delline ) == 0 ) // 判断删除的行,strcmp是比较两个数大小的函数 { continue ; } if ( trim ( $farray [ $i ]) <> "" ) // 删除文件中的所有空行 { $newfp .= $farray [ $i ]; // 重新整理后的数据 } } $fp = @ fopen ( $filename , " w " ); // 以写的方式打开文件 @ fputs ( $fp , $newfp ); @ fclose ( $fp ); ?>
文本文件aaa.txt如下:
10.8.0.1:255.255.255.0 10.8.0.2:255.255.255.0 10.8.0.3:255.255.255.0 10.8.0.4:255.255.255.0 10.8.0.5:255.255.255.0 10.8.0.6:255.255.255.0 10.8.0.8:255.255.255.0
热心网友 时间:2022-04-06 02:05
可以将文本存入到一个数组中,然后删除.用file()将文件读入然后遍历数组找到你要删除的那行重新保存下载一个用txt文本设计的留言本程序。研究一下,很容易了解的好像是复杂了点,全部遍历一次后存入数组,然后把你想删的那条记录删掉,然后再吧所有内容全部重新写入txt文件中function delete($file,$j){$newfile = "";$fc=file($file);$f=fopen($file,"r");flock($f,LOCK_SH);for ($i=0;$i<count($fc);$i++){if ($i != $j){$newfile = $newfile.$fc[$i]."";}}fclose($f);$f=fopen($file,"w");flock($f,LOCK_EX);fclose($f);}实际上就是删除数组中的一项