2013-05-07 134 views
5

情况
我的php/html页面每隔5-10分钟左右检索另一个域上的另一个页面的内容。我使用JavaScript setInterval()和jquery .load()从另一个域请求内容到我的页面上的一个元素。每次检索内容时,javascript都会将新内容与之前的内容进行比较,然后对php脚本进行Ajax调用,以便向我发送有关更改内容的电子邮件。自运行的PHP脚本?

问题
这是所有工作的罚款和花花公子除了一个事实,我需要一个浏览器不断开放,请求更新。

问题
有没有办法用某种服务器上的“自执行”脚本来做到这一点?有些东西我只需要启动一次,并且只要我希望脚本运行,就可以继续运行,而无需浏览器打开。

在此先感谢! P.S.我不是任何方式的PHP/JavaScript专家,但我可以解决问题。

+1

如果您具有对主机(服务器或VPS)或cron权限的root访问权限,则可以使用cron作业每隔X分钟运行一次。 – 2013-05-07 16:32:41

+0

只需在你的服务器上使用cron作业..看到这个〜> http://www.nbill.co.uk/documentation/setting-up-a-cronjob.html – reikyoushin 2013-05-07 16:32:47

+0

你可以设置一个cron作业来启动你的PHP脚本服务器。 – TCB13 2013-05-07 16:32:58

回答

1

我相信你正在寻找的东西是一个cron工作。

+0

“javascript将新内容与之前的内容进行比较,然后我进行Ajax调用......”您能否详细说明如何通过cron作业完成此操作? – 2013-05-07 16:35:36

+1

你没有。您只需创建一个可执行所有操作的PHP文件,然后设置一个cron作业来执行它。 – TCB13 2013-05-07 16:37:36

1

如果您的脚本依靠Javascript来正确执行,您将需要使用浏览器来实现您的目标。

但是,如果您可以通过PHP更改脚本以执行所有功能,可能使用cURL来请求必要的数据,则可以使用cron作业定期执行脚本。

1

如果您每隔一段时间运行脚本,我会建议使用在后台运行的bash脚本。

#!/bin/bash 

while [ 1 ] 
do 
    php "script.php" 
    sleep 300 
done 

然后,您可以运行脚本,如nohup bash.sh。 300秒= 5分钟。