0

为了很好地描述我的问题,我将首先写几句关于我的脚本到目前为止是如何工作的。
所以有一个服务器不时XML在某个地址下更新(假设它的(https://someaddress.com/feedback.xml)。然后我创建了一个每天运行一次的脚本(使用cron)读取XML给定的并将新对象放入我的数据库中。

现在我想在我的另一个脚本中获取这些对象(对我来说创建.php仅加载最新对象的独立文件很重要feedback.xml。这就是问题所在。我可以直接从中加载这些值,database但这样我就有了所有的完整列表记录(我只想要最新的)对此的解决方案可能是在表中添加存储boolean值的列New?问题,但我不能以任何方式改变我的database. 我相信我可以将这些对象加载到某些对象,array但是如何将其传递给另一个脚本?下面我发布我用来存储记录的方法database

$xmlstr = file_get_contents(url);

$xml = new SimpleXMLElement($xmlstr);

foreach ($xml->value as $a) {

    //method to check if record exist

    $rec= new Item($db);

    //method to set values of obj

    $rec->Store();
4

1 回答 1

1

如果您的脚本在同一台服务器上运行,那么有许多不同的方法可能会起作用:-

(1) 如果您的数据库已经有相关行的时间戳或唯一 ID,那么您可以查询数据库,按这些列之一排序,然后将结果限制为 1 条记录。

select [fields] from records order by created desc limit 1

(2) 除了将结果写入数据库之外,您还可以将它们保存在本地文件中并每次都从中读取(这些结果集有多大?)。

(3) 另一种选择是使用 Memcached 将结果集持久保存在内存中,这样您的脚本就可以保持解耦,但访问信息的速度非常快。如果您以前没有使用过 Memcached,请看一下 - 它非常适合此类任务并且使用简单。

如果您的脚本在不同的服务器上运行,那么 (1) 将起作用,但其他脚本需要进一步考虑。

于 2013-01-30T14:28:16.723 回答