PHP,如果,每30分钟一次?

时间:2015-09-15 11:05:54

标签: php xml if-statement time limit

我有一个带有IF语句的脚本,它会检查XML的特定值。此文档每30秒刷新一次,如果在XML中找到该值,则执行该命令。有没有办法让脚本每15分钟执行一次,而不是每30秒刷新一次XML?

$xml = 'http://www.example.com/xmlfile.xml';

if ($xml->value == '1')
{
// Exectute something if value from the XML is 1.

}
else
{
// Value not 1, do nothing.

}

2 个答案:

答案 0 :(得分:1)

$fileName = "lastrun.txt";
$time = file_get_contents($filename);
$timeBetweenRuns = 15;
if(!$time || time() > $time+60*$timeBetweenRuns){//if no file or time elapsed more then timeBetweenRuns 
   //Your code read file
   if($xml->1){
       //Your code .. Only thing if it may take more then next run, you need to add lock to not allow two process do same thing
       file_put_contents($filename, time())
   }
   else{//Your code
   }
}

这样的事情。

答案 1 :(得分:0)

您必须将CronJob用于此类周期性元素。

0 */30 * * * * php /root/path/to/script.php

用脚本做你的逻辑。

$xmlPath = 'http://www.example.com/xmlfile.xml';

$xml = new SimpleXMLElement($xmlPath);
$value = $xml->value;

if ($value === '1') {
    // Do stuff.
}

如果您没有Cron访问权限,可以使用www.setcronjob.com之类的内容,而不是使用PHP脚本访问,请使用wget http://example.com/script.php

之类的内容