用PHP在单独的文件中增加JSON键ID


Increment JSON key ID in separate files with PHP

好的,我有数据,我用PHP写JSON文件,在每个JSON文件中,有ID, field1和field2。现在,我想弄清楚的是什么是最好的方法来写一个新文件,但与自增ID从最后一个文件写入?我应该读取所有的文件并计算出最高的数字,还是有更好的方法?还有,我应该给每个JSON文件取什么名字呢?

这是我到目前为止的代码(注意,ID字段尚未实现):

$data[] = $_POST['data'];
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($data));
fclose($fp);

你可以用我能想到的两种方法来做到这一点。

  1. 使用MySQL进行自动递增。创建一个只有auto_increment主键的表。在数据库中插入一条新记录,并使用最后的插入id。

  2. 使用信号量(各种类型)来存储系统文件中的最后一个id。在保存json之前,确保信号量为NULL,创建一个文件(semaphore.txt),打开id文件(current_id.txt或其他),增加数字,保存并删除semaphore.txt文件。如果信号量文件退出,休眠一段时间,然后重试总超时或最大循环计数。

如果您选择选项1,您可以添加另一个包含要保存的文件名称的字段,并使用uniqid(或类似)来生成文件名。当然,您可以直接使用<id>.json