❶ php 如何从TXT文件中删除指定的一行
是的,没有函数直接删除文件中的行,修改文件(删除、增加)标准的办法都是新建立文件,逐行进行拷贝,在拷贝中遇到需要修改的就进行修改,那么满足你的功能的标准代码是:
删除第二行:
$f1=fopen('fff.txt','r');
$tmp=tempnam();//建立临时文件
$f2=fopen($tmp,'w');
$line_no=1;//行号
while(!feof($f1)){
$line=fgets($f1);
if ($line_no!=2) fputs($f2,$line);
$line_no++;
}
fclose($f1);
fclose($f2);
rename($tmp,'fff.txt');
删除内容为“user2”的行:
$f1=fopen('fff.txt','r');
$tmp=tempnam();//建立临时文件
$f2=fopen($tmp,'w');
while(!feof($f1)){
$line=fgets($f1);
if ($line!='user2') fputs($f2,$line);
}
fclose($f1);
fclose($f2);
rename($tmp,'fff.txt');
补充:这点举一反三都做不到呀,如果是我的学生我不会来做这个补充的~
$f1=fopen('fff.txt','r');
$tmp=tempnam();//建立临时文件
$f2=fopen($tmp,'w');
while(!feof($f1)){
$line=fgets($f1);
list($u,$p)=explode(':',$line);
if ($u!='user2') fputs($f2,$line);
}
fclose($f1);
fclose($f2);
rename($tmp,'fff.txt');
❷ PHP怎么删除某目录下指定的一个文件
删除文件可以使用unlink,没有必要将目录转换成绝对路径,如果想删除images中的文件,可以直接unlink("/image/文件名")即可~!
❸ php能不能直接删除excel文件里的指定行
你可以试一试 phpexcel的处理类 他们貌似有解决方法 去下载一个源码看一下就行。。还有 如果可以的话 推荐用csv 不用excel 用csv就算都读出来 处理 删掉 再写入 速度也很快
❹ 如何去掉PHP文件头的空白行
你是怎么清除的呢,一般用编辑器 选择 另存为,然后选择不+bom的utf8编码就可以了,或者你重新把你的重新读取一次,过滤掉开头非字符的空行。
❺ php删除txt文档第一行,然后保存。此txt可能上百万行
你的txt可能有百万行的话,此方法肯定不好用,很容易内存溢出
用命令行是最好的办法:
exec('sed -i '1d' test.txt');
❻ PHP删除TXT文本内容
那就很好改了。
<?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);
?>
❼ php逐行读取文件,逐行修改文件,删除指定行
修改和删除指定行,我们一般用file将文件内容读取到数组中,根据数字索引比较容易修改,但是你要求用文件指针,这个比较麻烦,不管你用的是filesystem的函数还是spl类函数,都不可避免一个问题,对一个文件流操作,最多替换流中间的某一段内容,不可能实现插入,又不是c语言的链表,
//修改第二行内容
$f=fopen('test.txt','r+');
$i=1;
while(!feof($f)){
if($i==2){
fseek($f,0,SEEK_CUR);
fwrite($f,'aad');//这里的修改是替换形式,如果修改后这一行的长度比原来短,那么可以用空格填充到原来长度,这样实现修改,而且不影响后面的内容,但是修改后的比原来长就麻烦了,
break;
}
fgets($f);
$i++;
}
fclose($f);
//删除行同修改行一样,只不过是将原来行替换为同等长度的空格串
$f=fopen('test.txt','r+');
$j=1;
while(!feof($f)){
if($j==2){
$row=fgets($f);
$len=strlen($row);
echoftell($f)-$len."<br>";
fseek($f,ftell($f)-$len);
fwrite($f,str_pad('',$len,''));
break;
}
fgets($f);
$j++;
}
fclose($f);
❽ php怎么删除文件夹和文件夹下的所有文件
正常的思路来说,先循环删除文件夹下的所有文件,当没有文件时再删除文件夹,如果你要删除文件夹和所有文件直接本地删除就好了,但是一般没有这种操作。删除文件可以用unlink($filepath)函数,$filepath是文件路径,然后还有一个封装函数rm_empty_dir($path)删除所有空目录:
/** 删除所有空目录
* @param String $path 目录路径
*/
function rm_empty_dir($path){
if(is_dir($path) && ($handle = opendir($path))!==false){
while(($file=readdir($handle))!==false){// 遍历文件夹
if($file!='.' && $file!='..'){
$curfile = $path.'/'.$file;// 当前目录
if(is_dir($curfile)){// 目录
rm_empty_dir($curfile);// 如果是目录则继续遍历
if(count(scandir($curfile))==2){//目录为空,=2是因为.和..存在
rmdir($curfile);// 删除空目录
}
}
}
}
closedir($handle);
}
}
具体的还要你自己稍加修改,希望可以帮到你。
❾ php查找并删除txt文件一行
一共要有三份代码
test1.php 输入的页面
<htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en"lang="en">
<head>
<title>Testdelete</title>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
</head>
<body>
<formname='fromTxt'action='test2.php'method='post'class="smart-green">
<span>Delete:</span></br></br>
<inputtype="text"name="ip_del"maxlength="50"style="height:20px;width:200px"onchange="Value()">
<inputtype='submit'name='submit'class="button"value="Delete"/>
</form>
</body>
</html>
test2.php 处理数据的后台
<?php
$DELETE=$_POST['ip_del'];/*之前输入的值的name*/
$data=file("ttt.txt");/*txt文件名*/
$out=array();
foreach($dataas$line){
if(trim($line)!=$DELETE){
$out[]=$line;
}
if(trim($line)==$DELETE){
echo"<script>alert('Existe')</script>";
}
}
If($data==$out){
echo"<script>alert('NotExiste')</script>";
}
$fp=fopen("ttt.txt","w+");
flock($fp,LOCK_EX);
foreach($outas$line){
fwrite($fp,$line);
}
flock($fp,LOCK_UN);
fclose($fp);
echo"<script>location.href='test1.php';</script>";/*返回主页面*/
?>
ttt.txt 存储信息文本文档
❿ 用PHP如何删除指定的文件
php中删除文件有一个系统函数:
unlink ( string $filename );
参数$filename 表示文件的路径,可以是相对路径也可以是绝对路径。
列如,当前目录下有个文件:test.html
可以执行 unlink ( 'test.html' );来删除
另外删除目录用函数:rmdir();用法与unlink ()相同