©
本文档使用
php.cn手册 发布
$argc — 传递给脚本的参数数目
包含当运行于命令行下时传递给当前脚本的参数的数目。
Note: 脚本的文件名总是作为参数传递给当前脚本,因此 $argc 的最小值为 1。
Note: 这个变量仅在 register_argc_argv 打开时可用。
Example #1 $argc 范例
<?php
var_dump ( $argc );
?>
当使用这个命令执行: php script.php arg1 arg2 arg3
以上例程的输出类似于:
int(4)
[#1] elm at r3m0ve dot gmx dot ch [2014-04-03 16:57:53]
To decide whether my script is run from CLI I simply create a PHP script that handles only CLI invocations.
File cron.php:
<?php
// Set environment variables your application depends on
$_SERVER[ 'HTTP_HOST' ] = 'domain.tld';
// $_SERVER[ 'REQUEST_URI' ] = '/some/URI/if/needed';
// Use the environment to read out required values
$task = $_SERVER[ 'argv' ][ 1 ];
// Instanciate the dispatcher or whatever you use
$dispatcher = new Dispatcher();
$dispatcher->handle( $task );
?>
This way my application doesn't have to know about CLI at all.
[#2] hvuaka at gmail dot com [2014-01-04 14:19:09]
You can use php_sapi_name() to check whether it is cli or not
[#3] Tejesember [2011-05-04 09:50:39]
To find out are you in CLI or not, this is much better in my opinion:
<?php
if (PHP_SAPI != "cli") {
exit;
}
?>
[#4] anonymous [2010-10-21 02:26:47]
I use the following lines to check if i'm using CLI mode or not :
<?php
$cli_mode = false;
if ( isset($_SERVER['argc']) && $_SERVER['argc']>=1 ) {
$cli_mode = true;
}
?>
[#5] karsten at typo3 dot org [2009-02-18 00:47:56]
Note: when using CLI $argc (as well as $argv) are always available, regardless of register_argc_argv, as explained at http://docs.php.net/manual/en/features.commandline.php