Files
web_2025/R3.01/tp/tp1
Ulysse JARNOUEN DE VILLARTAY a4580652f8 correction-ulysse (#2)
# Correction pour les TP1 TP2 et TP3

Je n'ai pas testé la connexion à la DB pour le moment car je ne peux pas me co sur https://dwarves.iut-fbleau.fr/phpmyadmin

Co-authored-by: JARNOUEN DE VILLARTAY Ulysse (SAFRAN AIRCRAFT ENGINES) <ulysse.jarnouen-de-villartay@safrangroup.com>
Reviewed-on: monnerat/web_2025#2
2026-04-15 15:34:46 +02:00
..
2026-04-15 15:34:46 +02:00
2026-04-15 15:34:46 +02:00
2026-04-15 15:34:46 +02:00
2026-04-15 15:34:46 +02:00
2026-04-15 15:34:46 +02:00
2026-04-15 15:34:46 +02:00
2026-03-24 18:29:34 +01:00
2026-03-25 10:13:27 +01:00

TP1 : bases du langage PHP

À l'IUT

Le repertoire public_html à la racine de votre compte est accessible par http(s) à l'url suivante :

http[s]://dwarves.iut-fbleau.fr/~login/

Ailleurs

Pour monter ce repertoire dans votre aborescence locale, vous pouvez utiliser le programme sshfs :

sshfs login@iut-fbleau.fr:/export/home/info-but25/login repertoire/de/montage/local/

Depuis la version 5.4, la commande php embarque un serveur web interne :

php -S localhost:8080 -t repertoire

Le repertoire passé en paramètre est la racine du serveur web.

Ex1

Vous allez tester votre premier script php : hello_world :

<!DOCTYPE html>
<html>
	<body>
	<?php echo "<h1>hello world</h1>";?>
	</body>
</html>
  • Placez le fichier hello_world.php dans votre repertoire public_html, et testez.

  • En utilisant la fonction phpinfo, faites afficher dans le script précédent la configuration php du serveur dwarves.

Ex2

Quel est l'entier servant de clé à

  • chaque élément du tableau suivant :

     <?php
     $clients = [
     	"Luc", 
     	7 => "Paul", 
     	2 =>"Martin", 
     	"Arnaud"
     	];
     ?>
    
  • à l'élément de valeur Blouson dans le tableau $produits ?

     <?php
     $produits = [
     	20 => "Chemise",
     	3 => "Pantalon",
     	10 => "Jupe",
     	"Veste",
     	"Blouson"
     ];
     ?>
    
  • à chaque élément du tableau $array ?

     <?php
     	$array = ["a","b","c"];
     	$array[] = "d";
     	$array[10] = "j";
     	unset($array[2]);
     ?>
    

Ex21

  • Créez un tableau de 10 cases dont la clé i contient la somme des entiers jusqu'à i.
  • Créez un tableau de 10 cases dont la clé i2 contient i .

Ex22

Écrivez un script php affichant les entiers de 1 à 50.

  • Faites en sorte que les impairs soient en italique, et les pairs en gras.
  • Regroupez chaque dizaine dans un même paragraphe.

Ex3

Vous disposez du fichier data.php qui représente, sous forme d'un tableau, un certain nombre d'individus, avec pour chacun ses nom, prénom, email, taille et poids.

Voici un extrait du fichier :

$data = array(
array("Nom"=>"Garza","Prenom"=>"Forrest","Email"=>"eleifend@ligulaedu","Taille"=>"185","Poids"=>"65"),
array("Nom"=>"Tanner","Prenom"=>"Orla","Email"=>"adipiscing@vitaecouk","Taille"=>"180","Poids"=>"73"),
...
  1. Ecrire un script qui affichent l'ensemble des données sous forme d'un tableau html.
  2. L'imc (indice de masse corporel) d'une personne est donné par la formule \frac{poids}{taille^2} (poids en kilogramme et taille en mètre).
    Ajouter une colonne avec la valeur de l'imc (2 chiffres après la virgule).
  3. Une personne est considérée en surpoids lorsque son imc dépasse 25. Colorier les lignes du tableau lorsque la personne correspondante est en surpoids.
    tableau
Conseils
  • Pour utiliser le fichier de données, incluez-le dans votre script.

  • La structure de langage foreach fournit une façon simple de parcourir des tableaux. foreach ne fonctionne que pour les tableaux et les objets, et émettra une erreur si vous tentez de l'utiliser sur une variable de type différent ou une variable non initialisée. Il existe deux syntaxes :

     foreach (array_expression as $value){
    
     }
    
     foreach (array_expression as $key => $value){
    
     }
    

    Des [exemples]](http://fr2.php.net/manual/fr/control-structures.foreach.php).

  • Pour arrondir un réel, vous pouvez utiliser la fonction round.

Ex4

Ecrivez un script qui permet de lancer deux dés, et en affiche la somme. Utilisez la fonction mt_rand pour la génération aléatoire.

tableau

Ex5

Ecrire un programme PHP qui affiche, sous forme d'une liste "cliquable" vos bookmarks (favoris) stockés dans un tableau associatif. Vos bookmarks seront classés par répertoire. Chaque répertoire aura donc un nom, et contiendra un certain nombre de favoris représentés par un nom, une image et une url.

Exemple d'affichage :

  • Moteurs de recherche :
    • .
    • .
  • Journaux :
    • .
    • .
    • .
  • Sports :
    • .
    • .

Ex6

Ecrire (et tester) une fonction

<?php
string createPassword(int $n, string $alphabet);
?>

qui permet de générer un mot de passe de n caractères choisis aléatoirement parmi les caractères de alphabet.

Conseils

Il suffit de tirer aléatoirement n caractères de la chaîne alphabet et de les concatener.

Les fonctions strlen et mt_rand pourront vous être utiles.

Ex61

On considère les deux tableaux suivants :

$tabMagazines = [
  'le monde'              => ['frequence' => 'quotidien', 'type' => 'actualité', 'prix' => 220],
  'le point'              => ['frequence' => 'hebdo'    , 'type' => 'actualité', 'prix' => 80 ],
  'causette'              => ['frequence' => 'mensuel'  , 'type' => 'féminin'  , 'prix' => 180],
  'politis'               => ['frequence' => 'hebdo'    , 'type' => 'opinion'  , 'prix' => 100],
  'le monde diplomatique' => ['frequence' => 'mensuel'  , 'type' => 'analyse'  , 'prix' => 60 ],
  'libération'            => ['frequence' => 'quotidien', 'type' => 'actualité', 'prix' => 190],
];

$tabMagazinesAbonne = ['le monde', 'le monde diplomatique'];
  1. Afficher sur une ligne le nom de tous les magazines triés par ordre alphabétique et séparés par des virgules, sans faire de boucle. Vous utiliserez des fonctions déjà existantes telles que implode, sort et array_keys que vous trouverez dans le manuel php.
  2. Afficher séparés par des virgule les noms des quotidiens (et uniquement ceux-ci).
  3. Afficher les magazines exactement de la façon suivante en supposant quil peut y avoir beaucoup de magazines et beaucoup de propriétés associées :
    • le monde (quotidien, actualité, 220)
    • le point (hebdo, actualité, 80)
    • causette (mensuel, féministe, 180)
    • politis (hebdo, opinion, 100)
    • le monde diplomatique (mensuel, analyse, 60)
  4. En utilisant le tableau $tabMagazinesAbonne contenant le nom des magazines dun abonné, calculer le prix total de son abonnement.

Ex62

Sur les anciens cahiers d'écoliers, on trouvait sur la courveture la liste des tables de multiplications

Écrire un script php qui affiche les tables correspondantes.

Ex7

On reprend l'exercice 3.

  1. Ajouter une colonne de clé Imc aux personnes du tableau $data. On utilisera la fonction array_map.
  2. Trier $data par ordre croissant d'imc. On utilisera la fonction usort.
  3. Calculer l'imc moyen de l'ensemble des personnes. On utilisera la fonction array_reduce.

Ex8

  1. Allez voir la page manuel PHP de scandir. Quel(s) sont ses arguments ? Que renvoie-t-elle ?
  2. Utilisez scandir pour afficher des liens vers les autres fichiers de votre dossier public_html. On rappelle que la balise html a permet de créer des hyperliens.
  3. Utilisez la méthode str_ends_with pour nafficher que les scripts PHP.

Par ailleurs, une liste des fonctions sur les chaînes de caractères est disponible ici.