Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 读取列表并将其存储为数组_Php - Fatal编程技术网

Php 读取列表并将其存储为数组

Php 读取列表并将其存储为数组,php,Php,我有一个脚本,它从各种来源接收json数据并对其进行处理。 我在数据库中有一个列表,也是一个已知良好来源的文本文件。这份名单上有数千条记录 在处理之前,我想将json中的源值与列表中的源值进行比较。每10秒接收一次数据。这份清单并不经常改变 目前,我可以通过查询数据库中的源列表或从文本文件中读取列表来实现这一点,但是在收到json后每10秒执行一次似乎是多余的,因为列表99%的时间都是相同的 问题是-做这件事的好方法是什么?假设此数据库不仅仅具有读取权限-您提到数据库记录不会经常更改,您可以在数

我有一个脚本,它从各种来源接收json数据并对其进行处理。 我在数据库中有一个列表,也是一个已知良好来源的文本文件。这份名单上有数千条记录

在处理之前,我想将json中的源值与列表中的源值进行比较。每10秒接收一次数据。这份清单并不经常改变

目前,我可以通过查询数据库中的源列表或从文本文件中读取列表来实现这一点,但是在收到json后每10秒执行一次似乎是多余的,因为列表99%的时间都是相同的


问题是-做这件事的好方法是什么?

假设此数据库不仅仅具有读取权限-您提到数据库记录不会经常更改,您可以在数据库上添加触发器以进行任何更改。让触发器将名为“listUpdated”的新表中的一行更新为True。
将列表加载到PHP中的一个数组中,并使用该数组对数据进行碰撞。每隔10秒,您只需检查“listUpdated”字段是否已设置为True。如果是,请更新数组并将值改回False。

缓存似乎是一个很好的解决方案,假设您有多余的内存读取数千行文件或查询数据库中的数千行,对服务器来说压力应该不会太大。您可以在服务器上或会话中查看缓存,但仍然必须每10秒检查一次缓存值以进行比较。几年后,列表的大小可能会翻一番,我将不再记得我今天做了什么,因此今天要明智地对待这一点,为了避免以后的头痛。使用file比使用db要慢几千条记录。如果您的数据库没有过度工作,请忘记尼斯php数组。如果你能控制的话,缓存听起来也不错。我有写权限。查询一条记录而不是数千条-这对我来说很有意义。非常感谢。