PHP 条件:cronjob 执行的脚本
PHP Condition : Script performed by cronjob
我有一个脚本,只有当脚本是来自 cron 作业的 运行 时才应该执行一段代码,但我不知道条件 "if the script is performed by cronjob".
如果你有 2 种类型的请求,来自服务器和来自远程,你可以通过变量 $_SERVER 来确定它们之间的不同。
如果您从 php 命令 运行 一个 php 文件,将不会设置 $_SERVER['REMOTE_ADDR']。
因此,您可以使用:
if( !isset($_SERVER['REMOTE_ADDR'] ) {
// The script is run by php command
}
但是,如果你的2种请求是运行通过php命令,你最好使用2个php文件,第一个是普通文件,而第二个将包括第一个和 运行 将由 cronjob 运行 指定的脚本。
简单地使用这个问题的答案:Using CRON jobs to visit 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();
}
// ...
我有一个脚本,只有当脚本是来自 cron 作业的 运行 时才应该执行一段代码,但我不知道条件 "if the script is performed by cronjob".
如果你有 2 种类型的请求,来自服务器和来自远程,你可以通过变量 $_SERVER 来确定它们之间的不同。
如果您从 php 命令 运行 一个 php 文件,将不会设置 $_SERVER['REMOTE_ADDR']。 因此,您可以使用:
if( !isset($_SERVER['REMOTE_ADDR'] ) {
// The script is run by php command
}
但是,如果你的2种请求是运行通过php命令,你最好使用2个php文件,第一个是普通文件,而第二个将包括第一个和 运行 将由 cronjob 运行 指定的脚本。
简单地使用这个问题的答案:Using CRON jobs to visit 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();
}
// ...