PHP条件:由cronjob执行的脚本


PHP Condition : Script performed by cronjob

我有一个脚本,只有当脚本从cron作业运行时,它才应该执行一段代码,但我不知道"如果脚本由cronjob执行"的条件。

简单地使用这个问题的答案:使用CRON作业访问url?

但是,请为URL提供一个参数,指示它来自CRON作业。

* * * * * wget -O - http://yoursite.com/script.php?fromcron=1 >/dev/null 2>&1

script.php

if(!isset($_GET['fromcron']) || $_GET['fromcron'] !== 1) {
    exit(); 
}
// ...

如果您有两种类型的请求,分别来自服务器和远程,您可以通过变量$_server来确定它们之间的差异。

如果从php命令运行php文件,则不会设置$_SERVER['REMOTE_ADDR']。因此,您可以使用:

if( !isset($_SERVER['REMOTE_ADDR'] ) {
    // The script is run by php command
}

然而,如果您的两种类型的请求是由php命令运行的,那么您最好使用两个php文件,第一个是正常的文件,而第二个文件将包括第一个文件,并运行将由cronjob运行的特定脚本。