要确定您是否处于 CLI 中,我认为以下方法更好
<?php
if (PHP_SAPI != "cli") {
exit;
}
?>
(PHP 4, PHP 5, PHP 7, PHP 8)
$argc — 传递给脚本的参数数量
包含从 命令行 运行时传递给当前脚本的参数数量。
注意: 脚本的文件名始终作为参数传递给脚本,因此 $argc 的最小值为
1
。
注意: 当 register_argc_argv 被禁用时,此变量不可用。
示例 #1 $argc 示例
<?php
var_dump($argc);
?>
当使用以下命令执行示例时:php script.php arg1 arg2 arg3
上面的示例将输出类似于以下内容
int(4)
注意:
这也可用作 $_SERVER['argc']。
注意:当使用 CLI 时,$argc(以及 $argv)始终可用,无论 register_argc_argv 如何,如 http://docs.php.net/manual/en/features.commandline.php 中所述。
要确定我的脚本是否从 CLI 运行,我只需创建一个仅处理 CLI 调用的 PHP 脚本。
文件 cron.php
<?php
// 设置您的应用程序依赖的环境变量
$_SERVER[ 'HTTP_HOST' ] = 'domain.tld';
// $_SERVER[ 'REQUEST_URI' ] = '/some/URI/if/needed';
// 使用环境读取所需的值
$task = $_SERVER[ 'argv' ][ 1 ];
// 实例化调度器或您使用的任何内容
$dispatcher = new Dispatcher();
$dispatcher->handle( $task );
?>
这样我的应用程序就不必了解 CLI 了。