远程解析XML与使用cURL本地保存文件并在本地解析

时间:2014-01-17 01:58:44

标签: php mysql xml parsing curl

在服务器上每10分钟发布一个XML数据文件,我将使用cron作业在我的网站上进行解析和更新。我将获取信息,将其保存到MySQL数据库,然后显示在我的网站上。这样做时我对最佳实践有疑问。

该文件大约200 - 300 KB所以它不是很大但我有两个想法如何做到这一点:

1)只需使用simplexml_load_file()加载文件并解析信息。

2)使用cURL获取文件并将其保存到我的服务器,然后从本地服务器进行解析。

我很好奇最佳做法是什么,最有效率是什么。使用simplexml_load_file(),是否在本地加载文件,然后在浏览数据时解析或加载多次?如果它刚加载一次,我想这将是最好的选择。我担心的一个问题是,每次我的cron作业运行时,我都不想陷入我正在抓取XML文件的服务器。我想它不会,因为它是一个如此小的文件,但我试图只是按时间间隔抓取文件,然后以最好的方式做数据需要做的事情。

我试图了解这些功能是如何工作的。如果您需要对此问题进行更多澄清,请与我们联系。我很感激帮助!

1 个答案:

答案 0 :(得分:1)

两者都可以。通常情况下,在一个小文件上,我可能会做你现在正在做的事情。话虽这么说,如果它是时间敏感的并且在cron工作上,我会做一些不同的事情。

将文件拉到服务器并保存哈希值。 如果新文件的散列与另一个散列不同,则解析,否则在30秒内重新运行该脚本。如果每隔8-9分钟运行一次你的好+/- 2分钟。

这样你就不会冒险让cron早早跑30秒,落后9:30。

要回答你的问题,"使用simplexml_load_file(),文件是在本地加载的,然后在浏览数据时多次解析或加载?"是的,它将它拉到您的服务器一次,然后解析xml。

希望有所帮助。 :)

编辑:有关更多内容的更深入解释,您可以搜索 " http无状态获取请求"能够解决问题的方法越多,我学到的问题就越多,但是它会解释当你的脚本请求获取xml时会发生什么(或者来自其他服务器的其他MIME类型)文件