2013-10-16 77 views
-1

有没有一种方法可以在服务器上运行PHP文件而无需使用浏览器? 如果可能的话:PHP观看json的变化

有一个JSON文件每3分钟更改一次(它是一个小JSON),如果文件更改,我想继续观看PHP,然后我想调用一个PHP函数。

AJAX可能吗?

有人能帮助我吗?

Thanx提前

+1

帮助你的需要发布code.Without代码它太难张贴解答。 –

+0

您可能会发现[this](http://www.catswhocode.com/blog/how-to-easily-monitor-your-web-server-using-php)文章有用。 –

+0

看看cronjobs。 –

回答

0

可以运行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 
+0

为什么使用eval? – EJTH

+0

@EJTH在答案中提到,您可以使用任何东西,类,函数,方法,或者只是在任何地方使用file_get_contents。只是为了缩短代码和演示目的。 – DanFromGermany

+0

我不会使用eval,即使是为了演示的目的,有人可能会偶然发现这一点,并认为它实际上是一个聪明的想法。此外,你的代码将不起作用,你错过了一个返回语句和在该eval语句内的分号,所以它总是会返回false,因为评估的代码有语法错误(并且永远不会返回值) – EJTH