簡體   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