繁体   English   中英

如何用php在txt文件中增加价值

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

我做错了什么?

删除fopenfclose线,就可以了。 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM