PHP删除TXT文本内容

aaa.txt文件内容如下10086|25618806|899513800|555138000|1585<?php$filename="aaa.txt";//定义操作文件... aaa.txt文件内容如下
10086|256
18806|8995
13800|555
138000|1585

<?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);
?>
我想把以上代码改为以关键字索引删除行(原代码是按行删除的),把13800的那一行删除(关键字是要完整匹配的),请问如何改?
展开
 我来答
谁盗用了枫若雪
2015-04-17 · TA获得超过502个赞
知道小有建树答主
回答量:484
采纳率:66%
帮助的人:247万
展开全部

主要就是用到substr函数。这个你查下手册就有用法。

$filename="aaa.txt";//定义操作文件

$delline='13800|'; //要删除的行关键字
,带上|是6位 
$farray=file($filename);//读取文件数据到数组中

for($i=0;$i<count($farray);$i++)

{   

    if(substr($farray[$i],0,6)==$delline)  //取字符串前6位,再判断
    {   

        continue;

    }   

    if(trim($farray[$i])<>"")  //删除文件中的所有空行

    {   

        $newfp.=$farray[$i];    //重新整理后的数据

    }   

}   

$fp=@fopen($filename,"w");//以写的方式打开文件

@fputs($fp,$newfp);

@fclose($fp);
追问
位数不是固定,你可以用|分开取字符,不过我要完整匹配的,不要模糊那种

可以了,太感谢您了!!!
追答
使用explode再分割,确实是更科学的方法。
博思aippt
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT... 点击进入详情页
本回答由博思aippt提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式