Introduction à PHP

Licence Informatique, semestre 6

Alexandre NiveauJean-Marc Lecarpentier — Ludovic Jean-Baptiste

Enseignement des technologies du Web

 

Introduction à PHP

Notes de cours

  • Introduction à PHP
    • Syntaxe générale : variables, structures de contrôle, fonctions…
    • Tableaux associatifs

Travail personnel

Objectifs

Dans ce TP on voit les bases du langage PHP, en l'utilisant depuis un terminal.

Exercice 1 — Boucles, tableaux et fonctions en PHP #

Cet exercice a pour objectif de vous faire manipuler la syntaxe de base de PHP en essayant parfois de vous faire tomber dans des pièges classiques.

Échauffement

  1. Créer un script PHP test.php qui affiche tous les nombres entiers de 1234 à 5678, avec un saut de ligne après chaque nombre.
  2. Dans un script PHP, mettre dans une variable $tab un tableau (array) vide, et le remplir avec 100 valeurs en utilisant une boucle for, de façon à ce que la case d'indice i contienne la valeur 3×i+2.
  3. Afficher le contenu de $tab en utilisant une boucle foreach.
  4. Dans un script PHP, créer une fonction prenant en paramètre un tableau de nombres et renvoyant la moyenne arithmétique de ces nombres. Tester par exemple sur le tableau $tab.

Tableaux associatifs

  1. Dans un script PHP, créer un tableau associatif $persos indiquant la taille de quatre ou cinq personnages de fiction (les clefs seront les noms des personnages, et les valeurs des flottants). NB : ne perdez pas de temps à chercher des infos, ça n'a aucun intérêt… Vous pouvez même inventer des personnages…
  2. En utilisant une boucle foreach, afficher la taille de chaque personnage sous la forme « Personnage mesure x cm. »
  3. Écrire une fonction « minimum() » prenant en paramètre un tableau, qui cherche la plus petite valeur du tableau et la renvoie. Tester sur votre tableau $persos.
  4. Ajouter un paramètre optionnel booléen $return_key à la fonction minimum, qui prend par défaut la valeur false (comme le veut l'usage pour les paramètres booléens). S'il est mis à true, on renvoie la clef correspondant à la plus petite valeur (et non la valeur elle-même). Tester sur votre tableau $persos : cela doit renvoyer le nom du personnage le plus petit.
  5. Écrire une fonction « min_and_max() » qui renvoie cette fois un tableau de taille 2, contenant la valeur la plus petite et la valeur la plus grande du tableau donné en paramètre. Tester sur $persos.

Fonctions de tri de tableaux

  1. Afficher le tableau avec chacune des trois fonctions d'affichage debug : print_r, var_dump, var_export. Choisissez-en une pour la suite.
  2. Appeler les fonctions suivantes sur le tableau, et regarder l'effet grâce à une des fonctions d'affichage :
    • asort() et son inverse arsort()
    • ksort() et son inverse krsort()
    • sort() et son inverse rsort()
    • shuffle()
    Si vous êtes perdu·e : plus d'infos sur les fonctions de tri de tableaux

Recherche d'une valeur dans un tableau

La fonction array_search($val, $tab) cherche si le tableau $tab contient la valeur $val, et renvoie la première clef correspondante si c'est le cas, et false sinon.

Regardez le script suivant et essayez de deviner ce qui va s'afficher.


<?php
function contient_toto($tab) {
    if (
array_search('toto'$tab) == false) {
        echo 
"Le tableau ne contient pas toto\n";
    } else {
        echo 
"Le tableau contient toto !!\n";
    }
}

$x = [ 'titi''toto''tutu' ];
contient_toto($x);
$y = [ 'tutu''titi''tete' ];
contient_toto($y);
$z = [ 'toto''titi''tutu' ];
contient_toto($z);
$t = [ 'titi''tutu'0  ];
contient_toto($t);

Recopiez-le ensuite dans un script, et exécutez-le : aviez-vous vu juste ? Si non, essayez de comprendre ce qui se passe. La page du manuel, en lien ci-dessus, peut être utile !

Exercice 2 — Chaînes de caractères en PHP #

La fonction readline est l'équivalent de input en Python : elle attend que l'utilisateur/trice tape une ligne de texte dans le terminal, et retourne le résultat sous forme de chaîne de caractères.

  1. Écrire un script PHP qui demande le nom et le prénom de l'utilisateur/trice, et lui dit ensuite une phrase de bienvenue personnalisée.
  2. Le script doit ensuite afficher le nombre de caractères du prénom. Vérifiez bien que ça fonctionne même pour les prénoms comportant des caractères spéciaux, ou même des émoticônes, comme 🐳, qui doit être considéré comme un seul caractère.
  3. Ajouter le code suivant à la fin de votre script (en adaptant si besoin les noms des variables) :
    if ($prenom + $nom == 'JeanValjean') {
        echo "Surprise !\n";
    }
    La surprise s'affiche-t-elle si vous dites que vous vous appelez Jean Valjean, ou l'inverse ? Comprenez-vous ce qui se passe ? Si vous ne comprenez pas, essayez de débugger…
  4. Trouver la fonction PHP permettant de renvoyer l'indice du premier caractère « a » dans une chaîne. Compléter le script pour qu'il indique quelque chose comme « Vous avez un a en position 12 dans votre prénom » ou « Vous n'avez pas de a dans votre prénom », en fonction des cas. Vérifiez que ça marche pour les prénoms « jean », « albert » et « béatrice », en minuscules. Optionnel : faire en sorte que ça marche aussi correctement si le prénom commence par une majuscule.
  5. La fonction explode découpe une chaîne de caractères selon un délimiteur donné et renvoie les morceaux dans un tableau. Demander à l'utilisateur/trice de rentrer une phrase, et en utilisant cette fonction, affichez le troisième mot de la phrase.
  6. La fonction implode fait l'inverse de la précédente : elle s'applique à un tableau contenant des chaînes, et renvoie le résultat de la concaténation de ces chaînes, séparées par un séparateur donné en paramètre. L'équivalent en Python est la méthode str.join.

    En utilisant notamment cette fonction, affichez la phrase rentrée par l'utilisateur/trice, mais avec les mots rangés dans l'ordre alphabétique.