Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Vous vous souvenez de la commande pour lancer PHP-CLI ?
Il y avait un endroit pour mettre des arguments.
C'est le sujet de ce chapitre.
Mais d'abord : c'est quoi, les arguments ?
Les arguments, c'est ce qui se trouve après le nom du programme dans la ligne de commande.
Exemple:
Code : Console | programme argument1 argument2 |
Normalement, un argument = un mot. C'est-à-dire que si je lance le programme "
programme" avec la chaîne "
je suis le meilleur" en argument, on obtiendra :
programme je suis le meilleur
Les couleurs séparent les arguments. Si le programme utilise l'argument 1, il comprendra que seule la chaîne "
je" lui a été passée en paramètre.
La solution est d'encadrer la chaîne avec des guillemets doubles, comme ceci :
programme "je suis le meilleur"
Le programme ne voit pas les guillemets.
Et comment j'y accède à ces arguments, dans mon script PHP ?
La version CLI de PHP définit deux variables,
$argc et
$argv.
$argc est le nombre d'arguments, et
$argv un tableau qui contient les arguments.
Le premier argument est le nom du script. print $argv[0]; écrit donc le nom du script à l'écran.
Un petit script d'exemple :
Code : PHP1
2
3
4
5
6 | <?php
if ( $argc < 2 ) //Test du nombre d'arguments
print 'Ce script demande au moins 1 argument'."\n";
else
print 'Argument 1 :'.$argv[1]."\n";
?>
|
Pourquoi tu mets 2, et pas 1 dans ton test ?
Parce qu'avec l'argument 0, il y a au moins deux éléments dans le tableau
$argv. Donc
$argc est égal ou supérieur à 2.
C'est pas compliqué, non ?
Nous allons maintenant faire... un programme d'exemple.
Ce programme servira à écrire un certain nombre de lignes toutes identiques.
Pratique...
Il prendra deux arguments : le premier sera la chaîne à répéter, et le second le nombre de lignes. Si le programme n'a pas le bon nombre d'arguments ou si les arguments ne sont pas valides, il doit afficher un message d'aide.
Pas d'indications spéciales cette fois, le programme n'est pas très compliqué.
Correction
Code : PHP 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | <?php
if ( $argc != 3 || ! is_numeric($argv[2]) )
{
//Les arguments ne sont pas corrects, on affiche un texte d'aide et on renvoie le code d'erreur -1
?>
Usage: <?php echo $argv[0]; ?> <texte> <nombre de lignes>
<?php
exit(-1);
}
for($i=0;$i<$argv[2];$i++)
print $argv[1]."\n";
echo 'Appuyez sur entrée pour continuer...';
fgets(STDIN);
?>
|
Une petite nouveauté dans ce script : l'emploi de
$argv[0] pour obtenir le nom du script. Comme ça, que vous appeliez votre script
lignes.php ou
test.php, le résultat sera toujours bon.
Vous remarquerez aussi l'emploi de la fonction
is_numeric() pour vérifier si l'argument 2 est bien un nombre.