Introduction au PHP
Objectifs d’apprentissage
Section titled “Objectifs d’apprentissage”- Comprendre les bases du langage PHP.
- Connaître les structures de contrôle
- Connaître les variables et type de données
Schéma
Section titled “Schéma”Activités pratiques
Section titled “Activités pratiques”PHP est principalement utilisé à travers un serveur web pour servir des pages HTML qui sont générées par PHP.
Cependant, il est tout à fait possible d’utiliser PHP depuis le terminal, comme un script Shell.
Créer un nouveau projet/dossier/workspace « PHP-scripts » dans VSCode, puis réalisez les exercices suivants.
Pour rappel, le code PHP doit être englobé des balises <?php et ?>
On peut utiliser les conditionnelles if/else et switch et les boucles for, foreach et while comme en Javascript (avec quelques petites différences de syntaxe…)
Fonctions utiles pour les exercices : echo, readline (permet de demander à l’utilisateur d’entrer une valeur au clavier),
Pour sauter des lignes dans la console avec un echo, vous devez concatener la String avec antislash n ."\n"
Pour executer un fichier PHP depuis le terminal, il suffit d’entrer la commande php suivie du nom du fichier, par exemple :
php monfichier.phpExercice 1 : Hello
Section titled “Exercice 1 : Hello”Créer un fichier hello.php qui va afficher le mot « Bonjour » dans la console.
echo 'Bonjour'."\n";Résultat:
BonjourExercice 2 : Hello version 2
Section titled “Exercice 2 : Hello version 2”Modifiez le fichier précédent pour qu’il demande le nom de l’utilisateur, et qu’il affiche ensuite « Bonjour Pierre » (si l’utilisateur a entré le nom Pierre)
Voir la correction
$nom = readline("Entrez votre nom svp : ");echo "Bonjour " . $nom . "\n";Résultat:
Entrez votre nom svp : TitiBonjour TitiExercice 3 : Hello version 3
Section titled “Exercice 3 : Hello version 3”Modifiez le fichier précédent pour qu’il fasse exactement la même chose, mais cette fois-ci, en utilisant une fonction bonjour qui va prendre une String en argument
Voir la correction
function bonjour($nom) { echo "Bonjour " . $nom . "\n";}$nom = readline("Entrez votre nom svp : ");bonjour($nom);Résultat:
Entrez votre nom svp : TitiBonjour TitiExercice 4 : La devinette
Section titled “Exercice 4 : La devinette”Créer un nouveau fichier devinette.php et réaliser un jeu où il faut deviner un chiffre entre 1 et 100.
Il faut utiliser la fonction rand pour générer un numéro aléatoire, puis boucler sur la valeur entrée par l’utilisateur jusqu’à ce qu’il trouve le bon chiffre.
À chaque essai, le programme doit dire à l’utilisateur si le chiffre doit être plus grand ou plus petit que celui qu’il a entré.
Voir la correction
<?php$number = -1;$rand = rand(0, 100);
// Version avec des "if / else"while ($number != $rand) { $number = readline("Entrez un nombre entier entre 0 et 100: ");
if ($number == $rand) echo "Vous avez gagné !" . "\n"; else if ($number < $rand) echo "Plus grand..." . "\n"; else echo "Plus petit..." . "\n";}?><?php$number = -1;$rand = rand(0, 100);//Version avec un Switch à la palce des if/elsewhile ($number != $rand) { $number = readline("Entrez un nombre entier entre 0 et 100: ");
switch ($number) { case $number == $rand: echo "Vous avez gagné !" . "\n"; exit; //exit quitte le programme tout de suite case $number < $rand: echo "Plus grand..." . "\n"; break; //break quitte le switch tout de suite case $number > $rand: echo "Plus petit..." . "\n"; break; }}?>Exemple d’execution :
php devinette.phpEntrez un nombre entier entre 0 et 100: 1Plus grand...Entrez un nombre entier entre 0 et 100: 5Plus grand...Entrez un nombre entier entre 0 et 100: 50Plus petit...Entrez un nombre entier entre 0 et 100: 40Plus petit...Entrez un nombre entier entre 0 et 100: 30Plus grand...Entrez un nombre entier entre 0 et 100: 35Plus petit...Entrez un nombre entier entre 0 et 100: 34Plus petit...Entrez un nombre entier entre 0 et 100: 33Plus petit...Entrez un nombre entier entre 0 et 100: 32Vous avez gagné !Exercice 5 : Tableaux
Section titled “Exercice 5 : Tableaux”Tableau v1
Section titled “Tableau v1”-
Créez un nouveau fichier tableaux.php
-
Déclarez un tableau de String contenant des fruits (par exemple : « Pommes », « Bananes », « Kiwi », etc.)
-
Rédigez une fonction «lister» qui affiche les éléments du tableau comme sur le résultat
Voir la correction
tableau.php - V1 <?php$tableau = ['Pommes','Bananes','Kiwi'];function lister( $un_tableau ) {echo "================="."\n";foreach($un_tableau as $key => $value) {echo $key . " => " . $value . "\n";}echo "================="."\n";}lister($tableau);?>Résultat:
=================0 => Pommes1 => Bananes2 => Kiwi=================
Tableau v2
Section titled “Tableau v2”-
Rédigez des fonctions pour ajouter, modifier, et supprimer des valeurs du tableaux. Chaque fonction doit appeler la fonction d’affichage
-
Rédigez du code pour demander à l’utilisateur ce qu’il souhaite faire : [a]jouter, [m]odifier, [s]upprimer, [l]ister, [q]uitter
-
En fonction de sa réponse a, m, s, l ou q, effectuer l’action correspondante.
-
Aide : Vous pouvez utiliser une boucle while( $reponse != « q ») { …. } qui va donc continuer de tourner tant que l’utilisateur n’aura pas décider de quitter le programme
Voir la correction
tableau.php - V2 <?phpfunction ajouter( $un_tableau, $un_element ) {$un_tableau[] = $un_element;return $un_tableau;}function lister( $un_tableau ) {echo "================="."\n";foreach($un_tableau as $key => $value) {echo $key . " => " . $value . "\n";}echo "================="."\n";}function modifier( $un_tableau, $une_cle, $une_valeur ) {$un_tableau[$une_cle] = $une_valeur;return $un_tableau;}function supprimer( $un_tableau, $une_cle ) {array_splice($un_tableau, $une_cle, 1);return $un_tableau;}$tableau = ['Pommes','Bananes','Kiwi'];$reponse = "";while ($reponse != 'q') {$reponse = readline("Que voulez-vous faire ? (a)jouter (l)ister (m)odifier (s)upprimer (q)uitter ");if($reponse == 'a') {$valeur = readline("Entrez le mot à ajouter : ");$tableau = ajouter($tableau, $valeur);echo $valeur. " ajouté au tableau : "."\n";lister($tableau);}if($reponse == 'l') {lister($tableau);}if($reponse == 'm') {lister($tableau);$cle_a_modifier = readline("Quel élément souhaitez vous modifier ?");$nouvelle_valeur = readline("Quel est la nouvelle valeur ?");$tableau = modifier($tableau, $cle_a_modifier, $nouvelle_valeur);echo $cle_a_modifier. " modifié dans le tableau : "."\n";lister($tableau);}if($reponse == 's') {lister($tableau);$cle_a_supprimer = readline("Quel élément souhaitez vous supprimer ?");$tableau = supprimer($tableau, $cle_a_supprimer);echo $cle_a_supprimer. " supprimé du tableau : "."\n";lister($tableau);}}?>Exemple d’exécution:
Terminal window php tableaux_v2_fonctions.phpQue voulez-vous faire ? (a)jouter (l)ister (m)odifier (s)upprimer (q)uitter l=================0 => Pommes1 => Bananes2 => Kiwi=================Que voulez-vous faire ? (a)jouter (l)ister (m)odifier (s)upprimer (q)uitter aEntrez le mot à ajouter : AbricotAbricot ajouté au tableau :=================0 => Pommes1 => Bananes2 => Kiwi3 => Abricot=================Que voulez-vous faire ? (a)jouter (l)ister (m)odifier (s)upprimer (q)uitter q
Bonus - Exercice 6 : Fichiers
Section titled “Bonus - Exercice 6 : Fichiers”Dupliquer votre programme précédent dans un nouveau fichier.
Vous devez modifier votre programme pour inclure une fonction de sauvegarde qui va sauvegarder votre tableau dans un fichier json (Les fichier json sont simplement des fichiers textes).
Vous devez utiliser les fonctions json_encode et file_put_content pour stocker le tableau dans un fichier json.
Vous devez utiliser les fonctions file_get_content et json_decode pour récupérer le contenu du fichier json puis le transformer à nouveau en tableau PHP
Votre programme doit maintenant :
Initialiser un fichier de sauvegarde s’il n’existe pas et créer un tableau vide. Sauvegarder votre tableau au fur et à mesure des modifications par l’utilisateur
Bonus - Exercice 7 : Lister des répertoires
Section titled “Bonus - Exercice 7 : Lister des répertoires”Créer un script qui demande un chemin à l’utilisateur, par exemple /home/pierre/Downloads et qui liste les fichiers contenu dans ce repertoire.
Effectuez des recherches sur internet pour trouver comment faire.
Conclusion
Section titled “Conclusion”Par la suite, on va surtout utiliser PHP pour se connecter à des bases de données et générer des pages HTML en conséquence, mais il faut garder à l’esprit que PHP est tout à fait utilisable en dehors d’un serveur web, et qu’il est même très pratique pour réaliser des petits programmes ou des scripts système.
Il peut être aussi parfois interessant de développer un programme PHP complexe d’abord pour le terminal, sans avoir à se soucier de l’interface.
Une fois le coeur et les fonctions du programme développés, il sera facile de l’intégrer dans le backend d’un site web !