我有一個文本文件,lastname, first name, address, state, etc
存儲爲|
分隔符和每條記錄在一個單獨的行上的字符串。使用php替換文本文件中的特定行?
我有我需要將每條記錄存儲在新行上並且工作正常的部分;但是,現在我需要能夠返回並更新特定行的名稱或地址,並且我無法使其工作。
這how to replace a particular line in a text file using php?幫助我在這裏,但我還沒有那麼。這會覆蓋整個文件並丟失記錄。任何幫助表示讚賞!
經過一些編輯似乎現在工作。我正在調試以查看是否有任何錯誤。
$string= implode('|',$contact);
$reading = fopen('contacts.txt', 'r');
$writing = fopen('contacts.tmp', 'w');
$replaced = false;
while (!feof($reading)) {
$line = fgets($reading);
if(stripos($line, $lname) !== FALSE) {
if(stripos($line, $fname) !== FALSE) {
$line = "$string";
$replaced = true;
}
}
fwrite($writing, "$line");
//fputs($writing, $line);
}
fclose($reading); fclose($writing);
// might as well not overwrite the file if we didn't replace anything
if ($replaced)
{
rename('contacts.tmp', 'contacts.txt');
} else {
unlink('contacts.tmp');
}
請您解釋一下當您說'這會覆蓋整個文件'時,您的意思。所有的行都成爲相同的記錄嗎? –
整個文件contacts.txt變爲空白。我有一個單獨的腳本添加了條目,所以我在那裏首先進行測試。當我運行這段代碼時,它會擦除文件中的所有內容。此外,我更喜歡在不將可能的數組中的整個文件傾倒的情況下完成此操作,以防文件在將來變得太大。試圖使其使用更少的內存。謝謝。 – user1781482
'contacts.txt'不可能變爲空白,它以只讀模式打開。你的意思是'contacts.tmp'嗎? –