Introduction à PHP

Licence Informatique 2ème année

Youssef Chahir

 

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 jours de la semaine de Dimanche à Samedi, avec un saut de ligne après chaque jour.
  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 un fonction prenant en paramètre un motif et qui affiche un triangle avec ce motif. Le motif peut être par ex. '*' ou '$'.
  5. 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 $pays_population indiquant des pays et le nombre de ses habitants (les clefs seront les noms des pays, et les valeurs des entiers). NB : On va s'intéresser aux pays suivants: 'France' : 67595000, 'Suede' : 9998000, 'Suisse' : 8417000, 'Kosovo' : 1820631, 'Malte' : 434403, 'Mexique' : 122273500, 'Allemagne' : 82800000,
  2. En utilisant une boucle foreach, afficher la population de chaque pays sous la forme « Population de pays est x habitants. »
  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 $pays_populatio.
  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 $pays_population : cela doit renvoyer le papys le moins peuplé.
  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 $pays_population.

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 saisit une chaine et qui vérifie si c'est un palindrome ou pas.
  2. Le script doit ensuite afficher le nombre de caractères de la chaîne mot. Vérifiez bien que ça fonctionne même pour les mots comportant des caractères spéciaux, ou même des émoticônes, comme 🐳, qui doit être considéré comme un seul caractère.
  3. Trouver la fonction PHP permettant de renvoyer l'indice du premier caractère « a » dans la chaîne. Compléter le script pour qu'il indique quelque chose comme « Vous avez un a en position 12 dans votre chaine ou « Vous n'avez pas de a dans votre chaine, en fonction des cas.
    Optionnel : faire en sorte que ça marche aussi correctement si la chaine commence par une majuscule ou avec des accents.
  4. 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.
  5. 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.