Web*_*net 9 php cron command-line
我需要确定是否通过代码中的cron或命令行加载PHP文件.我怎样才能做到这一点?
gah*_*ooa 16
如果你可以控制cron或命令,你是否考虑过传递一个命令行参数,然后用它读取$_SERVER['argv'][0]?
* * * * * /usr/bin/php /path/to/script --cron
Run Code Online (Sandbox Code Playgroud)
在脚本中:
<?php
if(isset($_SERVER['argv'][0]) and $_SERVER['argv'][0] == '--cron')
$I_AM_CRON = true;
else
$I_AM_CRON = false;
Run Code Online (Sandbox Code Playgroud)
检查脚本运行位置的最可靠和详尽的方法是
但是,此处列出的这个或任何其他列出的方法都不会让您区分"正常"CLI模式和cron调用.gahooa的命令行参数思想可能是最好,最可靠的解决方案.
这是一种简单的方法.$_SERVER仅当从HTTP调用时才设置数组的某些元素.因此你可以:
if(!isset($_SERVER['REQUEST_METHOD'])){
// from cron or command line
}else{
// from HTTP
}
Run Code Online (Sandbox Code Playgroud)
其他包括: $_SERVER['HTTP_HOST']