亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP刪除txt行然后刪除行但如果刪除是最后一行,它不會刪除空白行

PHP刪除txt行然后刪除行但如果刪除是最后一行,它不會刪除空白行

PHP
慕碼人8056858 2022-10-14 10:31:11
使用下面的代碼從文本文件中刪除一行。如果刪除的項目不是最后一個元素,它工作正常。完全刪除該行。    $panel_dir = 'host.txt';    $panel_data = file($panel_dir);    $panel_out = array();    foreach($panel_data as $panel_line) {        if(trim($panel_line) != $panel_del) {            $panel_out[] = $panel_line;        }    }    $f_panel = fopen($panel_dir, "w+") or die("Error");    foreach($panel_out as $panel_line) {        fwrite($f_panel, $panel_line);    }    fclose($f_panel);  }但是如果刪除的項目是最后一個元素,它將刪除該行,然后留下一個空行。打開從文本文件中刪除整行的更好方法。
查看完整描述

2 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

使用 array_map 修剪所有線條。使用 unset 從數組中刪除匹配項。您不需要使用 $panel_out 變量。然后使用 implode 將數組轉換為由新行分隔的字符串。


$panel_dir = 'host.txt';

$panel_data = array_map('trim', file($panel_dir));


foreach($panel_data as $key => $panel_line) {

    if($panel_line == $panel_del) {

        unset($panel_data[$key]);

    }

}


$f_panel = fopen($panel_dir, "w+") or die("Error");

fwrite($f_panel, implode("\n", $panel_data));

fclose($f_panel);


查看完整回答
反對 回復 2022-10-14
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

文件的最后一行不以換行符結尾。這在 Unix 上是不好的做法,因為許多文本處理工具都希望每一行都以換行符結尾,即使是最后一行。$panel_out但如果這是您想要的,您需要在寫入文件之前刪除最后一個元素末尾的換行符。


$last = count($panel_out)-1;

if ($last >= 0) {

    $panel_out[$last] = rtrim($panel_out[$last]);

}


查看完整回答
反對 回復 2022-10-14
  • 2 回答
  • 0 關注
  • 181 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號