有沒有一種方法可以在服務器上運行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。 –