這只是它的聲音...如何創建一個條目ID
我有一個HTML5表單,沒有數據庫。 (我沒有建議/支持這個,我只是適應環境。)
爲了保存服務器上的條目,我決定將它們寫入同級.CSV文件。
我需要引用這些條目的邏輯以後的道路,這是在條目號必要性進來一個簡單的方法
我周圍的一派,找不到任何方法 - 程序性和程序化 - 這可能是有用的。儘管這可能是由於我缺乏經驗。
總結:如何在每次提交表單時運行的PHP文件中創建本地唯一的Entry ID字符串/ int?
這只是它的聲音...如何創建一個條目ID
我有一個HTML5表單,沒有數據庫。 (我沒有建議/支持這個,我只是適應環境。)
爲了保存服務器上的條目,我決定將它們寫入同級.CSV文件。
我需要引用這些條目的邏輯以後的道路,這是在條目號必要性進來一個簡單的方法
我周圍的一派,找不到任何方法 - 程序性和程序化 - 這可能是有用的。儘管這可能是由於我缺乏經驗。
總結:如何在每次提交表單時運行的PHP文件中創建本地唯一的Entry ID字符串/ int?
您可以使用另一個文本文件,您可以在其中存儲實際ID。
e.g:
<?php
//Get last ID
$lastid = file_get_contents('last_id.txt');
if(empty($lastid)){ $lastid = 0);
$thisid = $lastid + 1;
//save post data to CSV
//use $lastid
//save for next time
file_put_contents('last_id.txt', $thisid);
?>
如果我有你的觀點正確。
編輯:
你有一個POST請求並將數據保存到CSV文件。你需要一個唯一的ID來標記行。
如:您的文件看起來像:
csv_data.txt
1, Max, Mustermann
2, Otto, Muster
last_id.txt
2
如果一個新的請求到達服務器,你會得到最後添加ID out_id.txt並增加此值。這個增加的價值將是你下一個唯一的ID。 現在你會在下一行添加到您的CSV文件:
3, Ben, Miller
,並在結束時,你將節省的唯一ID(在這種情況下3)您last_id.txt。 當收到下一個請求時,您將提升3到4等等......
你確實有我的觀點。如果您想對問題進行重新說明以使其更清楚,請隨時取消。 – ExcellentSP
不要忘記文件鎖定。請參閱http://php.net/manual/en/function.flock.php - 否則,如果兩個用戶一次導致系統執行兩次寫入操作,則可能會遇到麻煩。 – HoldOffHunger
@HoldOffHunger所以使用這種方法,我將不得不爲創建一個隊列,因爲入口日誌將被鎖定而被暫停處理。 – ExcellentSP
您可以使用uniqid()
來獲取唯一的ID。
如果您需要對應的文件數一個數字,那麼你可以使用:
$directory = "/csv_folder";
$entryID = count(scandir($directory)) - 2;
這對在該CSV文件的數目上傳文件夾。除非你從那裏刪除文件,否則它將是一個獨特的連續編號。
我喜歡簡單易用的方法,但不會像正常條目ID那樣統計CSV中的條目總數。 – ExcellentSP
我添加了一個替代我的答案,給你已經上傳的文件的數量。 – trincot
你會建議使用每個CSV VS. 1條目。 1個CSV用於所有條目? – ExcellentSP
爲什麼不能有另一個具有實際ID的文件? –
如何? @ KIMB-technologies – ExcellentSP
我甚至不確定你在問什麼。你只是在尋找這個?:http://php.net/manual/en/function.uniqid.php – David