簡體   English   中英

插入值后從txt文件中刪除新行

[英]remove new line from txt file after insert value

我以這種方式從文件夾創建txt文件:

$fp = fopen("mylist.txt","rw+");
foreach(glob("folder/*.*") as $value){
fwrite($fp,$value."\n");
}

並在txt中創建每個項目,每行一個,但是它還在文件末尾添加換行符。

這是mylist.txt的內容:

foldelr/file1.mp3
folder/file2.mp3
(BLANK NEWLINE)

我試圖通過這種方式刪除txt文件末尾的空白換行符:

$filetxt = fopen("mylist.txt","r");
$rtrim = rtrim($filetxt, "\n");
$newfile = file_put_contents("newfile.txt", $rtrim);

但這是行不通的,因為在“ newfile.txt”中,我在最后一個文件名之后仍然有換行符空白。

我試圖轉換數組中的文件,使用“ array_diff()”刪除最后一行,但是失敗。 我也嘗試了該線程中的所有建議: 使用php從txt文件中刪除換行符,但未解決我的問題。

有誰能幫助我了解我所缺少或錯誤的內容嗎?

親切的問候

布魯斯

使用file_get_contents方法對我來說很好

    $fp = fopen("mylist.txt","rw+");
    foreach (glob("test/*.*") as $value) {
        fwrite($fp, $value . "\n");
    }

    $filetxt = file_get_contents("mylist.txt");
    $rtrim =  rtrim($filetxt, "\n");
    $newfile = file_put_contents("mylist.txt", $rtrim);

或者,您也可以使用數組計數刪除最后一個換行符。

$fp = fopen("mylist.txt","rw+");
$i =0;
foreach(glob("folder/*.*") as $value){
  $i++;
  if($i < count(glob("folder/*.*"))) 
    fwrite($fp,$value."\n");
  else 
    fwrite($fp,$value);
}

您是否嘗試過先寫新行且僅寫值(假設文件中已有內容)?

fp = fopen("mylist.txt","rw+");

foreach(glob("folder/*.*") as $value){
    fwrite($fp, "\n".$value);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM