Aller au contenu

Exercices

Info

Pour tester rapidement les exemples de codes PHP, n'hésitez pas à utiliser Onlinephp ou PHPTester ou ExtendsClass PHP online. Par contre, il est recommandé de réaliser les exercices de fin de tutoriel dans un éditeur (Notepad++, PHPStorm, ...) car vous risquez de perdre votre travail sur PHPTester si la page est rechargée !

Exercice php.baseUrban (15min)

Ce dossier comprend une interface html (urban.html).

L'objectif est d'afficher dynamiquement les articles de la section <section id="posts"> à l'aide d'une boucle PHP, au lieu de les coder manuellement dans le fichier HTML.

Exercice baseBoucle1 (5min)

Affiche les chiffres de 0 à 100 en utilisant une boucle. Un retour à la ligne doit être présent après chaque chiffre affiché.

Exercice baseBoucle2Pair (5min)

Etape 1

Affiche les chiffres pair de 0 à 100 en utilisant une boucle.

Etape 2

Affichez ces chiffres dans une liste html.

Exercice baseBoucle3Alea(10min)

Créez le fichier neuf.php qui génère et affiche des nombres aléatoires compris entre 0 et 100 jusqu'à obtenir un multiple de 9. Affichez en gras ce dernier nombre.

Astuce nombre aléatoire

Utilisez la fonction rand(min, max) pour générer un nombre aléatoire compris entre deux bornes. Essayez d'afficher un nombre aléatoire entre 0 et 100.

Astuce boucle

Utilisez une boucle comme while pour générer des nombres aléatoires jusqu'à obtenir un multiple de 9

Testez chaque nombre avec l'opérateur % et arrêtez la boucle lorsque vous trouvez un multiple de 9.

Astuce multiple de 9

Utilisez l'opérateur modulo % pour tester si un nombre est un multiple de 9.

Si le résultat de nombre % 9 est égal à 0, alors le nombre est un multiple de 9.

Astuce <strong>

Utiliser une structure conditionnelle

Utilisez des balises HTML pour formater le dernier nombre trouvé en gras.

Defi

Utiliser la condition ternaire.

Quelle boucle avez-vous utilisé ? Pourquoi ?

Défi

Dans un catalogue en ligne, vous devez représenter une palette de couleurs possibles pour un produit. Il existe 64 couleurs (de noir #000000 à blanc #FFFFFF par paliers de 75 selon chaque composante (Rouge, Verte, Bleue), la valeur maximale de 225 passant à 255.).

Exemples :

(R=0, V=0, B=0) => #000000

(R=0, V=0, B=75) => #00004B

(R=0, V=0, B=150) => #000096

(R=0, V=0, B=255) => #0000FF

(R=0, V=75, B=0) => #004B00

(R=0, V=75, B=75) => #004B4B

(...)

(R=255, V=255, B=150) => #FFFF96

(R=255, V=255, B=255) => #FFFFFF

palette64

Comment faire pour ne pas devoir rédiger cette palette manuellement ?

Nous pourrions générer le code HTML à l'aide d'itérations sur chaque composante. En JAVA, cela donnerait:

final int MAX_COLOR = 225;
final int STEP_COLOR = 75;
int index_color = 1;
String color = "";

for(int r = 0; r < MAX_COLOR+1; r=r+STEP_COLOR){
    if(r == MAX_COLOR) r = 255;
    for(int g = 0; g < MAX_COLOR+1; g=g+STEP_COLOR){
        if(g == MAX_COLOR) g = 255;
        for(int b = 0; b < MAX_COLOR+1; b=b+STEP_COLOR){
            if(b == MAX_COLOR) b = 255;
            color = String.format("#%02x%02x%02x", r, g, b);
            System.out.println("\t\t\t<figure>");
            System.out.println("\t\t\t\t<div class=\"color\" style=\"background-color: " + color + "\"></div>");
            System.out.println("\t\t\t\t<figcaption>Ref: #"+index_color+"</figcaption>");
            System.out.println("\t\t\t</figure>");
            index_color++;
        }
    }
}

Mais comment le faire en PHP ? Nous avons besoin de pouvoir manipuler des variables ainsi que déclarer des branchements conditionnels et des boucles.

??? quote "Méthodes" - Créez un dossier dans lequel vous créez un fichier nommé palette.php et un fichier nommé style-palette.css - Copiez le code suivant dans le fichier créé (pour une question de lisiblité, toutes les figures ne sont pas présentes.) html <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Notre palette de couleurs</title> <link rel="stylesheet" type="text/css" href="style-palette.css" > </head> <body> <h1>Notre palette de couleurs</h1> <section class="colors"> <figure> <div class="color" style="background-color: #000000"></div> <figcaption>Ref: #1</figcaption> </figure> <figure> <div class="color" style="background-color: #00004b"></div> <figcaption>Ref: #2</figcaption> </figure> <figure> <div class="color" style="background-color: #000096"></div> <figcaption>Ref: #3</figcaption> </figure> <figure> <div class="color" style="background-color: #0000ff"></div> <figcaption>Ref: #4</figcaption> </figure> </section> </body> </html> - Réalisez la feuille de style pour avoir un affichage flexible de 8 couleurs par ligne. - Créez le code qui génère la palette de couleur contenant les 64 couleurs (de #000000 à #FFFFFF) par paliers de 75 selon chaque composante, la valeur maximale de 225 passant à 255.

- Définissez les constantes pour représenter le palier et la valeur maximale par composante.

- Arrangez-vous pour que le code généré soit correctement indenté.

- Astuce: copiez-collez le code Java et adaptez-le à la syntaxe PHP.