[英]how to add value in txt file with php
我想使用file_put_contents
向txt文件添加一個值(不覆蓋!)
這是我到目前為止所擁有的:
$fileUserId = fopen("fileUserId.txt", "w") or die("Unable to open file!");
$UserIdtxt = $UserID."||";
file_put_contents("fileUserId.txt", $UserIdtxt, FILE_APPEND);
fclose($fileUserId);
$UserID
是整數,例如1、2、3等。
因此,當UserID為1時, fileUserId.txt如下所示:
1||
當有另一個ID為2的用戶時, fileUserId.txt應該如下所示:
1||2||
但是他覆蓋了文件,因此它變成了:
2||
我做錯了什么?
刪除fopen
和fclose
線,就可以了。 file_put_contents
在內部執行此操作。 然后fopen("fileUserId.txt", "w")
清除文件。
注意:
w只開放寫作; 將文件指針放在文件的開頭,並將文件截斷為零長度。 如果該文件不存在,請嘗試創建它。
您也可以采用其他方式。 下面的注釋代碼說明了如何:
<?php
$txtFile = __DIR__ . "/fileUserId.txt";
$UserID = 9; //<== THIS VALUE IS FOR TESTING PURPOSES,
//<== YOU SHOULD HAVE ACCESS TO THE ORIGINAL $UserID;
//CHECK THAT THE FILE EXISTS AT ALL
if( file_exists($txtFile) ){
// GET THE CONTENTS OF THE FILE... & STORE IT AS A STRING IN A VARIABLE
$fileData = file_get_contents($txtFile);
// SPLIT THE ENTRIES BY THE DELIMITER (||)
$arrEntries = preg_split("#\|\|#", $fileData);
// ADD THE CURRENT $UserID TO THE $arrEntries ARRAY
$arrEntries[] = $UserID;
// RE-CONVERT THE ARRAY TO A STRING...
$strData = implode("||", $arrEntries);
// SAVE THE TEXT FILE BACK AGAIN...
file_put_contents($txtFile, $strData);
}else{
// IF FILE DOES NOT EXIST ALREADY, SIMPLY CREATE IT
// AND ADD THE CURRENT $UserID AS THE FIRST ENTRY...
file_put_contents($txtFile, $UserID);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.