SunshinePHP Developer Conference 2015

$argc

$argcتعداد آرگومان‌های ارسال شده به اسکریپت

Description

شامل تعداد آرگومان‌های ارسابی به اسکریپت فعلی در حال اجرا از خط فرمان است.

Note: نام فایل اسکریپت بصورت آرگومان به اسکریپت ارسال می‌شود. بنابراین حداقل مقدار $argc 1 است.

Note: این متغیر تنها در صورتی موجود است که register_argc_argv فعال باشد.

Examples

Example #1 نمونه $argc

<?php
var_dump
($argc);
?>

هنگام اجرای نمونه با: php script.php arg1 arg2 arg3

The above example will output something similar to:

int(4)

add a note add a note

User Contributed Notes 5 notes

up
18
Tejesember
3 years ago
To find out are you in CLI or not, this is much better in my opinion:
<?php
if (PHP_SAPI != "cli") {
    exit;
}
?>
up
-2
hvuaka at gmail dot com
9 months ago
You can use php_sapi_name() to check whether it is cli or not
up
-5
anonymous
4 years ago
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;
}
?>
up
-2
elm at r3m0ve dot gmx dot ch
6 months ago
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.
up
-5
karsten at typo3 dot org
5 years ago
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
To Top