有没有一种方法可以在服务器上运行PHP文件而无需使用浏览器? 如果可能的话:PHP观看json的变化
有一个JSON文件每3分钟更改一次(它是一个小JSON),如果文件更改,我想继续观看PHP,然后我想调用一个PHP函数。
AJAX可能吗?
有人能帮助我吗?
Thanx提前
有没有一种方法可以在服务器上运行PHP文件而无需使用浏览器? 如果可能的话:PHP观看json的变化
有一个JSON文件每3分钟更改一次(它是一个小JSON),如果文件更改,我想继续观看PHP,然后我想调用一个PHP函数。
AJAX可能吗?
有人能帮助我吗?
Thanx提前
可以运行PHP5-CLI脚本(含家当#!/usr/bin/php
)。这是Linux解决方案。
使用下面的成分:
set_time_limit(0)
初始化上面的事,那么读取的内容到一个变量
#!/usr/bin/php
<?php
$jsonCall = function() { return file_get_contents('/var/www/path/to/your/json'); };
set_time_limit(0);
gc_enable();
$json = $jsonCall();
while (true) {
sleep(15); // Wait 15 seconds
if ($json != $jsonCall()) {
$json = $jsonCall();
// Something changed in the json file
}
}
使文件的可执行(由除root以外的用户):
chmod 700 script.php
运行此脚本(不是root用户):
./script.php
为什么使用eval? – EJTH
@EJTH在答案中提到,您可以使用任何东西,类,函数,方法,或者只是在任何地方使用file_get_contents。只是为了缩短代码和演示目的。 – DanFromGermany
我不会使用eval,即使是为了演示的目的,有人可能会偶然发现这一点,并认为它实际上是一个聪明的想法。此外,你的代码将不起作用,你错过了一个返回语句和在该eval语句内的分号,所以它总是会返回false,因为评估的代码有语法错误(并且永远不会返回值) – EJTH
基本上,你必须创建一个cron作业来调用PHP程序来检查,如果该文件的修改日期发生变化。如果是的话,你可以执行你的PHP程序的其余部分。
正如亚当里弗斯说,看看到Cron作业(http://net.tutsplus.com/tutorials/php/managing-cron-jobs-with-php-2/)
帮助你的需要发布code.Without代码它太难张贴解答。 –
您可能会发现[this](http://www.catswhocode.com/blog/how-to-easily-monitor-your-web-server-using-php)文章有用。 –
看看cronjobs。 –