Maison > Article > développement back-end > Comment obtenir les paramètres en mode php cli
Il existe deux façons pour PHP de recevoir des paramètres en mode cli
1 Utilisez le tableau argv
2. Utilisez la méthode getopt
<?phpprint_r($argv);?>Exécuter sur la ligne de commande
php test.php news 1 5Sortie :
Array( [0] => test.php [1] => news [2] => 1 [3] => 5)Vous pouvez voir que argv[0] est le nom du fichier php actuellement exécuté, et argv[1]~argv[ 3] sont les valeurs des paramètres passés
argv[1] est égal à la valeur du type
argv[2] est égal à la valeur de is_hot
argv[3] est égal au valeur de la limite
De cette façon, les paramètres transmis peuvent être obtenus en fonction du tableau argv pour un traitement ultérieur.
Inconvénients : En utilisant le tableau argv, les paramètres passés peuvent être obtenus dans l'ordre. Mais après l'avoir obtenu, un traitement correspondant doit être effectué. Dans l'exemple ci-dessus, argv[1] doit correspondre au paramètre type, argv[2] correspond au paramètre is_hot et argv[3] correspond au paramètre limit. . Et si les paramètres sont écrits dans le mauvais ordre pendant le processus de transfert, cela entraînera une erreur de programme.
<?php$param = array();$param['type'] = $argv[1];$param['is_hot'] = $argv[2];$param['limit'] = $argv[3]; print_r($param);?>Exécution
php test.php news 1 5Sortie :
Array( [type] => news [is_hot] => 1 [limit] => 5)
Les paramètres sont obtenus dans un ordre différent. les valeurs seront différentes, entraînant des erreurs dans les programmes suivants
Exécutionphp test.php 1 5 newsSortie :
Array( [type] => 1 [is_hot] => 5 [limit] => news )
Ainsi, lors de l'utilisation du argv tableau pour passer les paramètres, Il faut faire attention à l'ordre de passage des paramètres.
2. Utilisez la méthode getopt getopt pour obtenir les options de la liste des paramètres de ligne de commandearray getopt ( string $options [, array $longopts ] )
Paramètres :
options Chaque caractère de cette chaîne sera traité comme un caractère d'option. Les options correspondant au script entrant commencent par un seul trait d'union (-). Par exemple, une chaîne d'option « x » identifie une option -x. Seuls a-z, A-Z et 0-9 sont autorisés.
longopts Tableau d'options. Chaque élément de ce tableau sera traité comme une chaîne d'options, correspondant aux options transmises au script avec deux tirets (–). Par exemple, l'élément d'options long "opt" identifie une option -opt.
les options peuvent contenir les éléments suivants : Un seul caractère (n'accepte pas de valeur)
Un caractère suivi de deux points (cette option nécessite une valeur)
Suivi de deux caractères deux-points (la valeur de cette option est facultative) La valeur de l'option
est le premier paramètre après la chaîne. Cela ne me dérange pas s'il y a des espaces avant la valeur.
Le séparateur de valeurs peut être un espace ou =. Les valeurs facultatives n'acceptent pas les espaces comme délimiteurs, seul = peut être utilisé comme délimiteurs.
Cette fonction renvoie un couple option/paramètre, ou FALSE en cas d'échec.
L'analyse des options se terminera à la première non-option trouvée, tout ce qui suit sera rejeté.
d est une valeur facultative
e n'est pas une valeur acceptée
<?php$param = getopt('a:b:c:d::e'); print_r($param);?>Exécuter
php test.php -a 1 -b 2 -c 3 -d=4 -e 5Sortie :
Array( [a] => 1 [b] => 2 [c] => 3 [d] => 4 [e] => )2. Utilisez l'instance longopts type, is_hot est la valeur requise
limit est la valeur facultative
expire Si la valeur
<?php$longopt = array( 'type:', 'is_hot:', 'limit::', 'expire');$param = getopt('', $longopt); print_r($param);?>n'est pas acceptée, exécutez
php test.php --type news --is_hot 1 --limit=10 --expire=100et affichez :
Array( [type] => news [is_hot] => 1 [limit] => 10 [expire] => )3. instances suivantes
<?php$longopt = array( 'type:', 'is_hot:', 'limit::', 'expire');$param = getopt('', $longopt); print_r($param);?>Exécution
php test.php --type news --is_hots 1 --limit=10 --expire=100Sortie :
Array ( [type] => news )Parce que is_hots n'est pas une valeur d'option (is_hot est défini), tous les paramètres à partir de maintenant sont écartés.
Résumé : Utilisez le tableau argv pour transmettre les paramètres, la méthode est simple et facile à mettre en œuvre. L'ordre des paramètres ne peut pas être erroné et le traitement correspondant doit être effectué une fois les paramètres obtenus.
En utilisant la méthode getopt, vous pouvez utiliser des noms de paramètres, et l'ordre des paramètres peut être arbitraire, ce qui est relativement standardisé. (Recommandé)
Comment obtenir de manière récursive la valeur d'une clé spécifiée dans un tableau via du code PHP
Lecture d'une taille de fichier de 1 Go via PHP
Explication du code de la fonction d'initialisation de la classe PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!