❶ 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 ()相同