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 > Afficher et demander des données > Lecture du tutoriel

Afficher et demander des données

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 : 6 119

Plus d'informations Plus d'informations
Vous avez appris à lancer PHP-CLI, ce cours sera l'occasion de l'utiliser.
On ne peut rien faire avec PHP-CLI, c'est nul !!!


Justement, ce cours abordera l'affichage et la récupération de la saisie pour vous permettre de faire des programmes un minimum interactifs. :D



Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

L'affichage

Vous vous en doutez sûrement :lol: , nous allons apprendre à utiliser PHP pour afficher du texte.

Ici, il y a deux manières de faire les choses.

Utiliser echo


La plus simple est évidemment l'utilisation d'echo ou de print qui permet d'afficher simplement du texte :p .
Un petit code d'exemple :
Code : PHP
1
2
3
<?php
echo 'Je suis un programme PHP';
?>

Ce qui affichera ...
Code : Console
Je suis un programme PHP

Bon... pas très original. :euh:

Mélanger le texte et le PHP


Ça marche comme avec le HTML : on ferme la balise PHP pour afficher le texte.
Code : PHP
1
2
3
4
Je suis affichée.
<?php
echo 'Moi aussi';
?>

On obtient :
Code : Console
Je suis affichée

Moi aussi


Et voilà :lol: ... vous savez déjà comment utiliser les variables dans tout ça, je ne vais pas vous refaire le cours.

Récupérer la saisie de l'utilisateur

Maintenant, vous aimeriez récupérer la saisie de l'utilisateur.
Ben oui, sinon le programme ne sert pas à grand-chose... :(
Vous aimeriez changer les paramètres dans le code à chaque fois, vous ? :D

Pour cela, nous allons utiliser les flux d'entrée / sortie standards.
Mais c'est quoi, ces flux d'entrée / sortie ?

En mode CLI, PHP définit trois flux d'entrée / sortie utilisables avec les fonctions de fichiers. Ils sont déjà ouverts, pas besoin d'utiliser fopen.
Les voici :


C'est bien beau tout ça, mais je m'en sers comment ?

Un petit exemple vaut mieux qu'un long discours :
Code : PHP
1
2
3
4
5
<?php
echo 'Quel est votre nom : ';
$texte=fgets(STDIN);
echo 'Bonjour '.$texte." !!\n";
?>

Et on obtient :
Code : Console
Quel est votre nom : gnomnain

Bonjour gnomnain

!!


Aaaaaaaaaaaargh, il fait quoi là, ce retour à la ligne ? o_O
Eh ben c'est la faute de la fonction fgets : fgets() sert à récupérer une ligne se terminant par un retour à la ligne. Le problème ? fgets() renvoie toute la ligne, même le caractère de retour à la ligne. :colere2:
Heureusement, il existe une solution : rtrim(). Cette fonction sert à enlever les espaces et les retours à la ligne en trop avant et après la chaîne de caractères. :magicien:
Notre code deviendrait donc :
Code : PHP
1
2
3
4
5
<?php
echo 'Quel est votre nom : ';
$texte=rtrim(fgets(STDIN));
echo 'Bonjour '.$texte." !!\n";
?>


Et voilà, vous pouvez maintenant récupérer la saisie de l'utilisateur. :D

STDERR, les erreurs

Vous avez vu STDIN et STDOUT. Mais STDERR, on s'en sert comment ? :euh:

Comme vous le savez :D , STDERR est la sortie d'erreur standard. Votre programme devra donc y rediriger toutes les erreurs.

Je cite une explication tirée du cours SDL :
Citation : M@teo21

Sous Windows, si vous avez écrit quelque chose dans stderr, alors un fichier stderr.txt sera créé dans le même dossier que votre exécutable. Vous pourrez donc l'ouvrir pour lire l'erreur.
Si vous êtes sous un autre OS, cela dépend de l'endroit où sont stockées les erreurs habituellement.


Par exemple, on peut créer une fonction erreur() qui sera l'équivalent de die() pour STDERR.
Code : PHP
1
2
3
4
5
6
7
8
9
<?php
function erreur($erreur,$code=-1)
{
    fputs(STDERR,$erreur);
    exit($code);
}

faire_quelquechose() or erreur('Impossible de faire_quelquechose',-1);
?>


Comment fonctionne ce code ?
La fonction erreur prend deux paramètres : le texte de l'erreur et la valeur de retour.
Le texte de l'erreur, vous devinez son rôle :lol: : il est écrit dans STDERR grâce à fputs().

Le code d'erreur, lui, est renvoyé par le programme. S'il est égal à 0, tout s'est bien passé. Mais les autres valeurs peuvent avoir des significations particulières, par exemple -1 pour indiquer que faire_quelquechose() a échoué.

Programme d'exemple

Maintenant, vous êtes armés pour créer votre premier "vrai programme" en PHP.

Ce programme sera capable de brouiller une chaîne de caractères et de la décrypter.

La méthode de brouillage


La méthode retenue sera l'échange des lettres deux à deux : la première avec la deuxième, la troisième avec la quatrième...

Un petit exemple : nous allons brouiller la chaîne "Le site du zéro est super".
Il y a 25 caractères, le dernier restera donc à sa place.
On brouille et on obtient : "eLs ti eudz ré ose tusepr". :magicien:
Pas très compréhensible... :D

Il suffira d'appliquer la même fonction pour le décryptage. :D

Avant de commencer


Il faudra créer une fonction brouiller() qui puisse être réutilisée.

Pour accéder à la n-ième lettre d'une chaîne, il faut utiliser la syntaxe :
Code : PHP
1
2
3
4
<?php
$chaine='Test';
$lettre=$chaine[0]; //retourne T
?>

Pour PHP, le compte des lettres commence à 0, la lettre numéro 1 sera donc en réalité la deuxième.


Et voilà, vous savez tout. Vous avez une heure :D .

Correction



Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

function brouiller($texte)
{
    $longueur=strlen($texte);
    $permutations=floor($longueur/2); //Nombre de permutations qui seront effectuées, arrondi à l'entier inférieur
    for($i=0;$i<$permutations;$i++)
    {
        //Pour chaque paire de lettres
        $lettre=$texte[$i*2]; //On stocke la première lettre
        $texte[$i*2]=$texte[$i*2+1]; //On la remplace par la deuxième
        $texte[$i*2+1]=$lettre; //Puis on remplace la deuxième par la première
    }
    return $texte;
}

echo 'Entrez le texte : ';
$texte=rtrim(fgets(STDIN));
echo 'Texte brouillé : '.brouiller($texte)."\n";
echo 'Appuyez sur entrée pour continuer...';
fgets(STDIN);
?>


La seule grande nouveauté de ce code :
Code : PHP
1
2
3
4
<?php
echo 'Appuyez sur entrée pour continuer...';
fgets(STDIN);
?>

Cette ligne permet d'attendre que l'utilisateur appuie sur une touche avant de quitter. Ça ne sert à rien pour l'instant, mais quand vous utiliserez un raccourci pour exécuter votre code, vous serez bien contents de voir le résultat avant la fermeture de la fenêtre. :D

Maintenant, vous pouvez faire des programmes plus interactifs. :D Par la suite, nous étudierons les arguments.
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

0 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 166 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0315s (0.0134s)