PHP删除TXT文本内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP删除TXT文本内容相关的知识,希望对你有一定的参考价值。
aaa.txt文件内容如下
10086|256
18806|8995
13800|555
138000|1585
13800|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的那一行删除(关键字是要完整匹配的),请问如何改?
文件内容中有两个13800,但是我只想删除第一个13800那一行就行了,也就是不管有多少个13800都好,我只想删除第一个就行,请问如何改?
$fclose($fopen('abc.txt','w'));
还可以直接写入空字符串,例如:
file_put_contents('abc.txt',''); 参考技术B
那就很好改了。
<?php$filename="aaa.txt";//定义操作文件
$dellinekey='13800'; //要删除的行关键字
$delcount=0;//已删除的行数
$farray=file($filename);//读取文件数据到数组中
for($i=0;$i<count($farray);$i++)
if($delcount == 0 && substr_count($farray[$i],$dellinekey) > 0) //先判断是否已删除一次,再判断当前行是否包含关键字,是则删除
$delcount++;//标记删除一次
continue;
if(trim($farray[$i])<>"") //删除文件中的所有空行
$newfp.=$farray[$i]; //重新整理后的数据
$fp=@fopen($filename,"w");//以写的方式打开文件
@fputs($fp,$newfp);
@fclose($fp);
?>追问
你的也可以,感谢热情帮助!!
参考技术C $filename="aaa.txt";//定义操作文件$findstr='13800|555';
$farray=file($filename);//读取文件数据到数组中
for($i=0;$i<count($farray);$i++)
if($farray[$i]==$findstr)
unset($farray[$i]);
break;
$newfp=implode("\\n",$farray);
file_put_contents($filename,$newfp);本回答被提问者采纳
尝试打开并读取 .txt 文件,但它从原始文件中删除了实际文本(Qt GUI C++
【中文标题】尝试打开并读取 .txt 文件,但它从原始文件中删除了实际文本(Qt GUI C++【英文标题】:Trying to open and read a .txt file, but it deletes the actual text from the original file (Qt GUI C++ 【发布时间】:2019-11-11 18:10:31 【问题描述】:我正在尝试打开并读取一个 .txt 文件,然后在标签中显示其中的一行,但该行未显示,但所有内容均已从原始选定文件中删除。有什么想法吗?
QString filename = QFileDialog::getOpenFileName(this,
tr("Open File"),
"/Users/kat/Documents/Programming 2/Assignment/Quizzes",
"All Files (*.*);;Text File (*.txt)");
QFile file(filename);
if(!file.open(QFile::WriteOnly | QFile::Text))
QMessageBox::warning(this, tr("File Not Open"),"File Cannot Be Opened");
QTextStream in(&file);
QRegularExpression re("Name: ");
QString title = in.readLine();
title.remove(re);
ui->label_4->setText(title);
file.flush();
file.close();```
【问题讨论】:
如果你想阅读,请不要以WriteOnly
打开它。
【参考方案1】:
您已打开文件进行写入而不是读取if(!file.open(QFile::WriteOnly | QFile::Text))
。如果你需要读取一个文件,你不应该这样做file.flush()
。
【讨论】:
谢谢。我将其更改为 ReadOnly,现在它可以完美运行了!以上是关于PHP删除TXT文本内容的主要内容,如果未能解决你的问题,请参考以下文章
尝试打开并读取 .txt 文件,但它从原始文件中删除了实际文本(Qt GUI C++