PHP Traitement des arguments


Exemple

Les arguments sont transmis au programme d'une manière similaire à la plupart des langages de style C. $argc est un entier contenant le nombre d'arguments incluant le nom du programme, et $argv est un tableau contenant des arguments pour le programme. Le premier élément de $argv est le nom du programme.

#!/usr/bin/php

printf("You called the program %s with %d arguments\n", $argv[0], $argc - 1);
unset($argv[0]);
foreach ($argv as $i => $arg) {
    printf("Argument %d is %s\n", $i, $arg);
}

L'appel de l'application ci-dessus avec php example.php foo bar (où example.php contient le code ci-dessus) produira la sortie suivante:

Vous avez appelé le programme example.php avec 2 arguments
L'argument 1 est foo
L'argument 2 est la barre

Notez que $argc et $argv sont des variables globales, pas des variables super globales. Ils doivent être importés dans la portée locale en utilisant le mot-clé global s'ils sont nécessaires dans une fonction.

Cet exemple montre comment les arguments sont regroupés lorsque des échappements tels que "" ou \ sont utilisés.

Exemple de script

var_dump($argc, $argv);

Ligne de commande

$ php argc.argv.php --this-is-an-option three\ words\ together or "in one quote"     but\ multiple\ spaces\ counted\ as\ one
int(6)
array(6) {
  [0]=>
  string(13) "argc.argv.php"
  [1]=>
  string(19) "--this-is-an-option"
  [2]=>
  string(20) "three words together"
  [3]=>
  string(2) "or"
  [4]=>
  string(12) "in one quote"
  [5]=>
  string(34) "but multiple spaces counted as one"
}

Si le script PHP est exécuté avec -r :

$ php -r 'var_dump($argv);'
array(1) {
  [0]=>
  string(1) "-"
}

Ou un code redirigé vers STDIN de php :

$ echo '<?php var_dump($argv);' | php
array(1) {
  [0]=>
  string(1) "-"
}