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

Php 远程解析XML与使用cURL在本地保存文件并在本地解析,php,mysql,xml,parsing,curl,Php,Mysql,Xml,Parsing,Curl,在我将使用cron作业在我的站点上解析和更新的服务器上,每10分钟发布一次数据的XML文件。我会将信息保存到MySQL数据库,然后显示在我的网站上。我有一个关于做这件事的最佳实践的问题 这个文件大约有200-300KB,所以不是很大,但我有两个想法: 1) 只需使用simplexml_load_file()加载文件并解析信息 2) 使用cURL获取文件并将其保存到我的服务器,然后在本地从我的服务器执行解析 我很好奇什么是最佳实践,什么是最有效的。使用simplexml_load_file(),是

在我将使用cron作业在我的站点上解析和更新的服务器上,每10分钟发布一次数据的XML文件。我会将信息保存到MySQL数据库,然后显示在我的网站上。我有一个关于做这件事的最佳实践的问题

这个文件大约有200-300KB,所以不是很大,但我有两个想法:

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

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

我很好奇什么是最佳实践,什么是最有效的。使用simplexml_load_file(),是本地加载文件,然后进行解析,还是在浏览数据时多次加载?如果只加载一次,我想这是最好的选择。我担心的一个问题是,我不想在每次cron作业运行时都让我从中获取XML文件的服务器陷入困境。我想不会,因为它是一个如此小的文件,但我正在尝试每隔一段时间抓取文件,然后以最好的方式处理数据


我正试图了解这些函数是如何工作的。如果你需要进一步澄清这个问题,请告诉我。我感谢你的帮助

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

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

这样,您就不会冒让cron提前30秒运行而落后9:30分钟的风险

要回答您的问题,“使用simplexml_load_file(),是本地加载文件然后进行解析,还是在浏览数据时多次加载?”是的,它会将文件拉到服务器上一次,然后解析xml

希望有帮助。:)

编辑:要了解更多关于正在发生的事情的更深入的解释,您可以搜索
“http无状态get请求”这是一个让人费神的问题,我知道的越多,我的问题就越多,;)但它将解释当脚本请求从另一台服务器获取xml(或其他MIME类型)文件时会发生什么情况

您需要保留该文件的副本以备将来进行故障排除吗?这很好。非常感谢。没问题:)祝你好运