-1

我被一个项目困住了,它是一个快速修复项目,我需要一些专家的帮助。我的客户有两个独立的网站。

1. http://abc123.com/using-cron-job-update-this-folder.txt <-- I'm working on this
2. http://bw.aaaaaa.com/blah.txt                           <-- Client's 2nd site where some txt gets updated almost twice a day, on this folder blah.txt

我需要一个 php 片段来执行一个cronjob,即从site2 - http://bw.aaaaaa.com/blah.txt实时抓取文本site1 - http://abc123.com/using-cron-job-update-this-folder.txt并在站点 1 上更新任何文本后立即更新。

4

1 回答 1

0

虽然这可能会导致服务器资源使用率很高并且不是很推荐,但您可以按照以下方式进行。

  1. 将从另一台服务器获取文件的服务器 - 我们将其命名为 CLIENT。
  2. 将包含要由 CLIENT 复制的新信息的服务器 - 我们将其命名为 SERVER。

在客户端上,创建一个 PHP 脚本,该脚本使用 CURL 仅下载远程文件的标题,更具体地说是修改日期。

以下答案提供了一个有用的片段。

存储此日期和脚本下次运行时,检查它是否已更新,然后下载完整的源代码,包括正文并按您喜欢的方式保存(例如,保存到客户端上的本地 txt 文件)。

再次在客户端上,创建一个将每秒或每 5 秒运行一次的 cronjob,或者您希望更新内容的频率。这对于设置 cronjob 可能会派上用场。

或者,您可以创建一个 PHP 脚本,该脚本将循环并执行某些操作(下载远程文件)并休眠 1 秒,总共执行 60 秒然后停止。将此与每分钟运行的 cronjob 相结合,您将获得相同的效果,而无需每秒对 CLIENT 服务器进行 cron 调用。要查看此方法的实现,请参阅此问题及其接受的答案。

更好的推荐替代方法是使用在客户端运行的 AJAX。让它在用户鼠标移动后立即运行,并通过您可以在服务器端公开的 API 从服务器中提取日期(例如,将返回 JSON 格式的数据,由用户浏览器内的 jQuery 等 JavaScript 库解析)。Facebook 墙就是这样编码的。如果您只是在后台选项卡中打开墙,它不会加载任何新内容。只要您切换回它并用鼠标悬停,就会显示新帖子。

于 2012-09-26T16:16:39.893 回答