Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Site Web > PHP > Points particuliers > Créer de vrais programmes en PHP > La ligne de commande > Les arguments > Lecture du tutoriel

Les arguments

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)
Avatar
Auteur : gnomnain
Visualisations : 3 661

Plus d'informations Plus d'informations
Vous vous souvenez de la commande pour lancer PHP-CLI ? o_O
Il y avait un endroit pour mettre des arguments.

C'est le sujet de ce chapitre. :D
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

C'est quoi, les arguments ?

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. :o

La solution est d'encadrer la chaîne avec des guillemets doubles, comme ceci :
programme "je suis le meilleur" :magicien:
Le programme ne voit pas les guillemets.

Utiliser les arguments

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 : PHP
1
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 ? o_O

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 ? :D

Lignes

Nous allons maintenant faire... un programme d'exemple. :D

Ce programme servira à écrire un certain nombre de lignes toutes identiques.
Pratique... :lol:

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.

Vous pouvez maintenant utiliser les arguments. Il ne vous manque plus que quelques détails que nous aborderons dans ce qui suit. :p
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 05/07/2006 à 16:00:07
Modifié : le 22/08/2008 à 15:49:19
Avancement : 0%
Licence : Creative Commons BY

1 commentaire

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 105 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.1561s (0.1411s)