[英]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.