我有一个带有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.
}
答案 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