溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php刪除文件中任意一行的方法是什么

發(fā)布時(shí)間:2020-11-11 10:20:22 來源:億速云 閱讀:141 作者:小新 欄目:編程語言

這篇文章主要介紹php刪除文件中任意一行的方法是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

php刪除文件中的任意一行的方法:首先將文件逐行讀入數(shù)組;然后遍歷數(shù)組,并把數(shù)組中的各元素的值添加到要保存的字符串中,當(dāng)處理到要?jiǎng)h除的行時(shí)不讀入;最后保存文件即可。

將文件逐行讀入數(shù)組,然后遍歷數(shù)組并把數(shù)組各元素的值添加到要保存的字符串中,當(dāng)處理到對(duì)應(yīng)于要?jiǎng)h除的行的數(shù)組元素時(shí)不讀入它,最后保存文件。

實(shí)現(xiàn)方法:

$num=2;
//要?jiǎng)h除的行序號(hào) 
$fp=file("test.txt"); 
$total=count($fp); 
//取得文件總行數(shù) 
foreach ($fp as $line) { 
//按行分解內(nèi)容并 
$tmp[]=$line; 
//逐行寫入數(shù)組 
} 
for($i=0;$i<$total;$i++){ 
//若$i的值不等于要?jiǎng)h除的行序號(hào) 
if($i<>$num) 
$savestr.=$tmp[$i]; 
} 
//寫入文件 
$fp=fopen("test.txt","w"); 
fwrite($fp,$savestr); 
fclose($fp);

執(zhí)行以上PHP程序,它將刪除test.txt文件的第三行。文件的行序列號(hào)從0算起,而不是我們通常所理解的從1算起,這與數(shù)組元素的下標(biāo)序號(hào)是一樣的情形。

有一個(gè)問題需要弄清楚,就是所謂的“行”的概念。讓我們用記事本寫一個(gè)文件,一行結(jié)束后我們打一個(gè)回車或者不打,保存該文件后該文件就有了一行;如果我們打完一行后回車再打一行,保存后文件就有兩行。在記事本里,當(dāng)我們?cè)O(shè)置格式為“自動(dòng)換行”,一行文字寫到最右端時(shí)會(huì)自動(dòng)折行,但那不是兩行,它依然只是一行。

在記事本里,不論有多少文字,也不論格式是否為“自動(dòng)換行”,如果一直沒有回車符,那么就只能是一行。換句話說,行的標(biāo)志是回車符(PHP記作“"\r\n"”)。

修改以上程序,我們還可以輕易地刪除文件里所有空的行(只有空格+回車符或只有回車符的行):在遍歷數(shù)組并讀入保存字串時(shí)用trim檢測每一個(gè)數(shù)組元素

for($i=0;$i<$total;$i++){ if(trim($tmp[$i])<>"") $savestr.=$tmp[$i]; }

這個(gè)程序?qū)h除文件中的所有空行,但假若文件的最后一行為空行,則會(huì)清除其空格符(如果有的話)然后保留一個(gè)回車符(它被當(dāng)作文件末尾的指針標(biāo)志)。

以上是php刪除文件中任意一行的方法是什么的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI