Les bases du PHP

Un site dynamique c'est quoi ?

Deux types de sites

Le site statique :

Offre une réponse unique, toujours identique pour une ressource donnée quelque soit la requête.

Le site dynamique :

Offre une réponse variable selon la requête, permet d'échanger des données avec un utilisateur et de traiter des données.

Comment ça marche ?

1

4

2

3

1 - Le client envoie une requête au serveur.

2 - Le serveur demande à un langage backend de générer la page.

3 - Le langage renvoie la page générée au serveur.

4 - Le serveur renvoi la page au client.

Les différents langages et leurs avantages.

Théoriquement, tous les langages peuvent être utilisés. Dans les faits, certains sont plus adaptés que d'autres.

Python :

Langage puissant, beaucoup de librairies, très bonne communauté, un peu difficile à déployer.

Ruby :

Langage élégant, communauté très brouillonnes, insupportable à déployer.

.NET :

Langage puissant mais propriétaire, déployable que sur du Windows.

PHP :

Langage simple, puissant, beaucoup de librairies, très simple à déployer, communauté noob friendly.

Il existe encore d'autres langages, notamment Javascript + Node.js et Java...

Trouver de la documentation

La doc officielle

La doc officielle de PHP est la meilleure doc de TOUS les langages de programmation.

Langue :

Anglais, Français, Espagnol, Chinois ou ce que vous voulez !

Utile pour :

Trouver ce que fait une fonction, trouver des exemples d'utilisation, trouver une fonction pour effectuer une tâche simple.

Google et Stackoverflow

Stackoverflow est le plus gros forum de développeurs. Utile pour tous les langages !

Langue :

Anglais. Éventuellement français, mais moins complet.

Utile pour :

Trouver comment effectuer une tâche. Trouver un module/outils. Résoudre un bug.

De façon général, trouver une solution à un problème.

Packagist

Packagist est le plus grand répertoire de bibliothèques PHP.

Langue :

Anglais.

Utile pour :

Trouver une lib pour effectuer certaines tâches, trouver des clients pour des APIs, etc.

PHP c'est quoi ?

Définition

Création :

1994 par Rasmus Lerdorf

Paradigme :

Impératif & Objet

Type de langage :

Interprété

Licence :

Logiciel libre sous Licence PHP 3.01, type BSD sans copyleft.

Utilisation :

Principalement Web

Version actuelle :

7.2

Créer un script PHP

Un script PHP, c'est juste du texte !

Comme PHP est un langage interprété, pour créer un script PHP il suffit de créer un fichier texte et d'y écrire des instructions PHP. On ajoute l'extension ".php".

Quand PHP traite un fichier, il cherche les balises d'ouverture et de fermeture (<?php et ?>) qui délimitent le code qu'il doit interpréter.

Donc tout le code PHP doit commencer par "<?php" et finir par "?>".

Exemple d'un fichier qui affiche les infos de version et config de PHP :

<?php
    echo "Ci-dessous les infos sur votre PHP :\n";
    phpinfo();
?>

PS : Le "?>" à la fin est optionnel et souvent retiré pour éviter que des retours à la lignes ou des espaces traînent dans le rendu final.

Exécuter un script PHP

Une fois votre fichier PHP créé, vous allez devoir l’exécuter. Il existe principalement deux façon d’exécuter des fichiers PHP.

En ligne de commande :

Cela vous permet par exemple de lancer des tâches ponctuelles, ou d'utiliser PHP pour de l'administration système.

Via un serveur web :

Méthode la plus utilisée, elle permet de faire des sites avec PHP.

Exécuter un script en ligne de commande

Pour exécuter un script en ligne de commande, rien de plus simple, il suffit d'appeler l’interpréteur PHP et de lui donner le script en argument.

php ./chemin_vers_votre_fichier.php

Note : Il est aussi possible d'utiliser un shebang !

Faire exécuter un script par le serveur web

Pour exécuter un script depuis un serveur web, il faut mettre le fichier dans un dossier auquel le serveur pourra accéder (souvent /var/www/html/).

Il faut également activer le mode PHP sur le serveur pour le dossier en question.

Enfin, il suffit d'accéder à l'adresse du serveur depuis votre navigateur, en demandant d'accéder à ce script en particulier. Ex : http://votreaddresse.loc/fichier.php

Ligne de commande != serveur

Attention, certaines fonctionnalités disponibles quand PHP est exécuté depuis un serveur web ne le sont pas depuis une ligne de commande.

En effet, certaines fonctionnalités n'ont de sens que dans un cadre "web", par exemple l'analyse d'une requête HTTP, l'accès aux arguments POST & GET, etc.

Normalement, cela est indiqué dans la documentation de PHP.

Utiliser des variables

C'est quoi une variable ?

Les variables sont un moyen de stocker sous un nom unique une valeur qui sera utilisée dans le programme.

La valeur d'une variable peut évoluer au cours de l’exécution du programme.

Créer une variable en PHP

En PHP, les variables commencent par un "$". Pour définir la valeur d'une variable on utilise le signe "=".

<?php
    $nombre_cotes_carre = 4;

Un nom de variable ne doit contenir que des lettres (sans accents), des chiffres ou des _ et commencer par une lettre.

Dans certains langages (C par exemple), toutes les variables doivent être définies en amont. En PHP une variable peut être définie à tout moment.

Modifier une variable

Pour modifier une variable, il suffit de lui assigner de nouveau une valeur.

<?php
    $reponse = 42;
    $reponse = 43;
    $reponse = 'Et maintenant 44';

Lors de la modification d'une variable il est possible de changer totalement le type de données stockées.

Les types

PHP utilise un typage dynamique faible !

Trois conséquences :

1. Les variables n'ont pas besoin d'être déclarées au début du programme (comme en C).

 

2. PHP utilise du ducktyping, donc on ne déclare pas le type des variables.

 

3. On peut combiner des variables de types différents.

Les types de base en PHP

Dans un langage, plusieurs type de valeurs peuvent exister, nombre entier, nombre flottant, chaîne de caractères, etc..

En PHP les différents types les types de base sont :

boolean : Des booléens, càd vrai (true) ou faux (false)

int : Un chiffre entier

float : Un chiffre à virgule

string : Une chaîne de caractère

<?php
    $un_int = 12;
    $un_float = 66.6;
    $une_string = 'Bonjour le monde !';
    $une_autre_string = "Bonjour le monde 2 !";
    $un_boolean = false;

Les types spéciaux en PHP

En PHP, il existe aussi deux types spéciaux.

NULL : Correspond à une valeur vide.

ressource : Les ressources correspondent à des types de références. Elles ne sont jamais utilisées manuellement.

<?php
    $null = null;

PS : Null ça sert à quoi ? Le plus souvent à définir un retour vide que l'on veut clairement différencier d'un false.

Les tableaux en PHP

Certains types plus complexes existent, le plus utilisé est array, qui sert à définir un tableau.

<?php
    $un_tableau = array('premier_element', 'second_element');
    $un_tableau_2 = ['premier_element', 'second_element'];

Un tableau peut être défini avec la fonction array, ou les signes "[" et "]".

Un tableau peut contenir différents types de variables.

<?php
    $un_tableau_mix = ['string', 42, 66.6, false];

Un tableau peut aussi utiliser des clefs ou indexes numériques qui permettront d'accéder à une entrée du tableau.

<?php
    $scores = [
        'pierre' => 10,
        'paul' => 8,
        'jacques' => 15,
    ];

Pour accéder à une entrée d'un tableau, on utilise soit une clef du tableau.

<?php
    $scores = [
        'pierre' => 10,
        'paul' => 8,
        'jacques' => 15,
    ];

    echo $scores['paul']; //affichera 8

Soit un index numérique. Le premier élément étant numéroté 0.

<?php
    $un_tableau_mix = ['string', 42, 66.6, false];
    echo $un_tableau_mix[1]; //affichera 42

Gérer et afficher du texte

Créer et afficher une chaîne en PHP

Pour afficher une chaîne en PHP, rien de compliqué, il vous suffit d'utiliser l'instruction "echo".

<?php
    $str1 = 'Bonjour le monde !';
    $str2 = "Bonjour le monde !";

Pour créer une chaîne, vous pouvez utiliser soit des simples soit des doubles guillemets.

<?php
    echo 'Bonjour le monde !';

Mélanger des chaînes et des variables

<?php
    $age = 19;
    echo 'Vous avez ' . $age . ' ans.';

Souvent, vous aurez besoin de mélanger des chaînes de caractères et des variables. Pour cela on utilise la concaténation. PHP possède sont propre opérateur pour a concaténation, ".".

Dans une chaîne entre double guillemets, les variables sont directement interprétées.

<?php
    $age = 19;
    echo "Vous avez $age ans.";

Échapper des caractères

<?php
    echo 'J\'aime les fruits en sirop !';

Comment faire si vous devez écrire ' dans une chaîne comprise entre des ' ?

Rien de plus simple, précédez la par un anti-slash "\".

Mais comment écrire un anti-slash alors ? Pareil !

<?php
    echo 'Par contre j\'avoue, on a pas souvent besoin d'écrire un \\...';

Écrire du texte avec ET sans PHP

Nous l'avons déjà dit, PHP n'interprète QUE le code entre les balises PHP.

Bonjour <?php echo 'le monde'; ?> !

Cela signifie donc que nous pouvons écrire une partie du texte de façon fixe, et une partie de façon dynamique.

Ce code affichera donc "Bonjour le monde !".

Écrire du HTML

Vous savez écrire du texte ? Bah alors vous savez comment écrire du HTML.

Pourquoi ? Tout simplement parce-que HTML, c'est juste du texte.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>title</title>
  </head>
  <body>
    <?php echo "Bonjour le monde !"; ?>
  </body>
</html>

Les opérateurs en

PHP

Les opérateurs mathématiques

+ : Addition

- : Soustraction

* : Multiplication

/ : Division

% : Modulo

** : Puissance

<?php
    echo 5 + 3; //8
    echo 5 - 3; //2
    echo 5 * 3; //15
    echo 5 / 3; //1.6666666666667
    echo 5 % 3; //2
    echo 5 ** 3; //125

Les opérateurs de comparaison

== : Égalité

=== : Égalité et même type

< : Inférieur

> : Supérieur

<= : Inférieur ou égal

>= : Supérieur ou égal

!= : Différent

!== : Différent ou pas même type

<=> : -1 si gauche inférieur, 0 si égaux, 1 si gauche sup

<?php
    5 == '5'; //True
    5 === '5'; //False
    5 < 3; //False
    5 > 3; //True
    5 <= 3; //False
    5 >= 5; //True
    5 != 5; //False
    5 !== '5'; //True
    5 <=> 5; //0
    5 <=> 6; //-1
    6 <=> 5; //1

Les opérateurs

logiques

&& ou and : Et logique

|| ou or : Ou logique

xor : Ou exclusif

! : Négation (inverseur)

<?php
    true && true; //True
    true && false; //False
    true || true; //True
    true || false; //True
    false || false; //False
    true xor false; //True
    false xor false; //False
    true xor true; //False
    !true; //False
    !false; //True

Opérateurs d'affectation

= : Assignation

+= : Addition et assignation

-= : Soustraction et assignation

*= : Multiplication et assignation

/= : Division et assignation

$a++ : Incrémentation

$a-- : Décrémentation

.= : Concaténation et assignation

<?php
    $a = 10;
    $a += 10; //20
    $a -= 10; //10
    $a *= 3; //30
    $a /= 3; //10
    $a++; //11
    $a--; //10
    $a .= ' Kilos'; //10 Kilos

Les conditions en PHP

Les conditions

Dans tous les langage de programmation il est possible d'écrire des portions de codes exécutées uniquement si certaines conditions sont remplies.

Généralement, on retrouve 3 types de conditions : Si, sinon si et sinon.

En PHP, on retrouve donc ces trois conditions : if, elseif et else.

La condition if

Une condition if est toujours formée de trois parties.

1 - Le mot clé if

2 - Une expression représentant la condition à tester

3 - Le bloc de code a exécuter si la condition est valide

<?php
    $vrai = true;

    if ($vrai == true)
    {
        echo 'Afficher si $vrai est vrai';
    }

La condition if permet d’exécuter un bloc de code uniquement si une condition est remplie.

La condition else

Une condition else est toujours formée de deux parties.

1 - Le mot clé else

2 - Le bloc de code a exécuter si la condition est valide

<?php
    $vrai = false;

    if ($vrai == true)
    {
        echo 'Afficher si $vrai est vrai';
    }
    else
    {
        echo 'Afficher si $vrai est faux';   
    }

La condition else permet d’exécuter un bloc de code uniquement si une condition if précédente n'as pas été remplie.

La condition elseif

Une condition elseif est toujours formée de deux parties.

1 - Le mot clé elseif

2 - La condition à tester

3 - Le bloc de code a exécuter si la condition est valide

<?php
    $chiffre = 10;

    if ($chiffre == 5)
    {
        echo 'Afficher si chiffre est égal à 5';
    }
    elseif ($chiffre == 10)
    {
        echo 'Afficher si chiffre est égal à 10';
    }

La condition elseif permet d’exécuter un bloc de code uniquement si une condition if précédente n'as pas été remplie et si la condition elseif est remplie.

Petite astuce

Par imaginons que nous voulions afficher un bloc de texte ou un autre, selon une option. Plutôt que de tout afficher avec echo, on peut jouer avec les balises PHP !

<?php
    $chiffre = 10;

    if ($chiffre == 5)
    {
    ?>
        Afficher si chiffre est égal à 5
    <?php
    }
    elseif ($chiffre == 10)
    {
    ?>
        Afficher si chiffre est égal à 10
    <?php
    }

Il est possible de combiner l'astuce du texte fixe et l'utilisation des conditions.

Les boucles en PHP

Les boucles

Dans tous les langage de programmation il est possible d'écrire des portions de codes qui seront répétées tant qu'une condition est remplie.

En PHP, on utilise principalement trois boucles : while, for et foreach.

Ce concept est généralement nommé boucle.

La boucle while

Une boucle while est toujours formée de trois parties.

1 - Le mot clé while

2 - Une expression représentant la condition à tester

3 - Le bloc de code a exécuter tant que la condition est valide

<?php
    $i = 0;

    //Affichera tous les nombre de 0 à 9
    while ($i < 10)
    {
        echo $i . "\n";
        $i++;
    }

La boucle while permet d’exécuter un bloc de code tant qu'une condition est remplie.

La boucle for

Une boucle for est formée comme une while mais, la condition prend une autre forme :

(initialisation_variable ; condition ; action_à_chaque_tour)

<?php
    
    //Affichera tous les nombre de 0 à 9
    for ($i = 0; $i < 10; $i++)
    {
        echo $i . "\n";
    }

La boucle for est une boucle while qui permet aussi d'initialiser une variable et d'effectuer une action à la fin chaque tour.

La boucle foreach

Une boucle foreach n'utilise pas une condition mais une expression de la forme :

($liste as $key => $element)

<?php
    
    $liste = [
        'Iron Man' => 'Tony Stark',
        'Spider Man' => 'Peter Parker',
        'Black Panther' => 'T\'challa',
    ];

    //Affichera l'identité de chaque héro
    foreach ($liste as $hero => $civil)
    {
        echo 'La vraie identité de ' . $hero . ' est ' . $civil . "\n";
    }

La boucle foreach est une boucle qui va parcourir tous les éléments d'un Iterable (càd généralement un tableau).

Note : la partie "$key =>" n'est pas obligatoire, mais alors vous ne pouvez pas accéder à la clef.

Les fonctions en PHP

Les fonctions

Souvent, on a besoin d'utiliser plusieurs fois les mêmes bouts de code. Pour cela, il existe les fonctions.

En PHP  on peut distinguer deux types de fonctions. Les fonctions internes au langage, qui sont disponible naturellement, et les fonctions créées par l'utilisateur.

Les fonctions sont des sortes de sous programmes indépendants du reste du programme et qui peuvent être appelés n'importe où et autant de fois que nécessaire dans le reste du programme.

Comment ça marche ?

Fondamentalement, une fonction faits les choses suivantes :

1 - Elle possède un nom unique

2 - Elle attend des données passées en arguments

3 - Elle effectue une série d'opération (souvent en utilisant les données passées)

4 - Elle retourne une valeur qui pourra être récupérée par le reste du programme quand elle sera appelée.

5 - Elle isole son contenu du reste du programme, càd qu'on ne peut pas accéder aux données de la fonctions depuis le reste.

Exemple d'utilisation d'une fonction

Imaginons que nous voulions trouver le nombre de caractères dans une chaîne.

C'est un besoin simple, et PHP a donc probablement une fonction interne pour ça. En cherchant, on trouve la fonction strlen.

Cette fonction demande au minimum un argument et retourne un chiffre (int au début).

Pour compter une chaîne, nous allons donc devoir appeler la fonction en lui passant cette chaîne en argument.

<?php
    
    $str1 = 'Les framboises sont perchées sur le tabouret de mon grand père.';
    $str2 = 'Faut pas respirer la compote, ça fait tousser.';

    echo '$str1 fait ' . strlen($str1) . ' caractères et $str2 ' . strlen($str2) . ' caractères.';

    //va afficher : $str1 fait 65 caractères et $str2 47 caractères.

Exemple d'utilisation d'une fonction

Imaginons que nous voulions maintenant remplacer tous les 'o' par des 'a' dans une chaîne.

Il existe aussi une fonction pour ça, str_replace.

Cette fonction demande plusieurs arguments, et le dernier, $count, est optionnel (indiqué par des []).

Comment passer les différents arguments pour que PHP sache lequel correspond à quoi ? C'est tout simple, il suffit de respecter l'ordre !

<?php
    
    $str1 = 'toto';

    //va afficher : tata
    echo str_replace('o', 'a', $str1);

Une fonction peut donc avoir plusieurs arguments, et mêmes des arguments optionnels, càd que nous ne somme pas obligés de renseigner.

Et si on veut remplacer seulement le premier caractère ? Et bien on défini l'argument $count !

<?php
    
    $str1 = 'toto';

    //va afficher : tato
    echo str_replace('o', 'a', $str1, 1);

Créer une fonction personnalisée

Imaginons que nous voulions créer une fonction qui affiche "est carré".

Pour créer une fonction, nous allons utiliser :

1 - L'instruction function

2 - Un bloc d'arguments (qui pour nous sera vide)

3 - Un bloc de code à executer

<?php
    function square ()
    {
        echo "est carré.";
    }

    //Affichera : est carré.
    square();

Ajouter des arguments

Maintenant, affichons 'est carré' seulement si un rectangle est vraiment un carré.

Pour cela il nous faut deux arguments, hauteur et largeur.

<?php
    function square ($height, $width)
    {
        if ($height == $width)
        {
            echo "est carré.";
        }
    }

    //Affichera : est carré.
    square(10, 10);

    //Affichera rien
    square(5, 10);

Utiliser les retours

Imaginons que nous voulions effectuer un traitement particulier dans le reste du programme sur les carrés.

Dans ce cas, afficher "est carré" ne nous sert à rien.

Nous avons besoin d'un moyen de savoir au niveau du programme que nous avons affaire à un carré.

Seulement, on ne peut pas accéder aux variables de la fonction depuis l'extérieur.

Pour résoudre le problème, il suffit de demander à la fonction de retourner au reste du programme la valeur qui nous intéresse.

Pour retourner une valeur depuis une fonction, il suffit d'utiliser l'instruction return.

Quand le programme tombe sur return à l'intérieur d'une fonction, il renvoi la valeur et quitte la fonction. On peut alors récupérer la valeur en l'assignant à une variable comme d'habitude.

<?php
    function square ($width, $height)
    {
        if ($width == $height)
        {
            return true;
        }

        return false;
    }

    $is_square = square(10, 10);
    if ($is_square)
    {
        echo '10 et 10 c\'est bien carré !';
    }

    $is_square = square(5, 10);
    if ($is_square)
    {
        echo '5 et 10 c\'est pas très carré !';
    }

Utiliser des arguments optionnels

Imaginons que nous voulions faire une fonction qui fait une puissance sur un chiffre.

Par défaut, on veut faire une puissance de 2, mais ont veut pouvoir faire d'autres puissance.

Le plus simple pour cela serait de créer un argument "exposant" qui vaut 2 par défaut s'il n'est pas renseigné et qui pourras être modifié.

À savoir, on ne peut écrire les arguments optionnels qu'après les arguments obligatoires.

Et on peut en mettre autant qu'on veut.

Un argument optionnel est un argument comme un autre, avec une valeur définie par défaut.

<?php
    function puissance ($chiffre, $exposant = 2)
    {
        return $chiffre ** $exposant;
    }

    //25
    echo puissance(5);

    //125
    echo puissance(5, 3);

Définir des types

Depuis PHP 8 un effort a été fait pour améliorer le typage des variables afin d'améliorer la qualité du code.

Il est également possible de définir plusieurs types pour un même paramètre/retour, avec le pipe "|"

Pour cela il suffit de déclarer le type attendu avant le nom du paramètre, et de faire suivre la fonction de ": nom du type".

Cela se traduit principalement par le fait de pouvoir déclarer le type des paramètres attendus par une fonction, ainsi que le type de données retournées par la fonction.

<?php
    function power(int|float $value, int $power) 
    {
    	//...
    }
<?php
    function square (int $width, int $height): bool
    {
        //...
    }

Et même de définir des paramètres qui peuvent êtres nuls en précédent le type d'un "?"

<?php
    function power(int|float $value, ?int $power) 
    {
    	//...
    }

Utiliser plusieurs fichiers

L'inclusion

Quand un programme deviens un peu complexe, on se retrouve souvent à avoir besoin de le séparer en différents fichiers pour pouvoir l'organiser.

Pour répondre à ce type de besoins, PHP propose un mécanisme nommé inclusion.

Le principe de l'inclusion est d'insérer dynamiquement un fichier PHP à l'intérieur d'un autre et de l’exécuter.

Comment ça marche ?

Le programme principale est exécuté ligne par ligne.

Une fois arrivé sur la ligne d'inclusion, PHP va chercher le programme à inclure, et l’exécuter ligne par ligne.

Arrivé à la fin du fichier inclus, l’exécution du programme principale reprend à la ligne suivante. Son contexte a été modifié par celui du programme inclus.

Le programme inclus hérites alors de tout le contexte du programme principale.

Comment ça marche ?

Le programme principale est exécuté ligne par ligne.

Une fois arrivé sur la ligne d'inclusion, PHP va chercher le programme à inclure, et l’exécuter ligne par ligne.

Arrivé à la fin du fichier inclus, l’exécution du programme principale reprend à la ligne suivante. Son contexte a été modifié par celui du programme inclus.

Le programme inclus hérites alors de tout le contexte du programme principale.

Exemple d'inclusion

Pour inclure un fichier dans un autre, on utilise l'instruction include, qui prend en argument le chemin du fichier à inclure.

Imaginons que nous voulions inclure le fichier enfant.php dans le fichier parents.php, situé dans le même répertoire.

<?php
    echo "Range ta chambre !";

    include('./enfant.php');
<?php
    echo "Tout à l'heure !";

parents.php

enfant.php

Range ta chambre !
Tout à l'heure !

Inclusion plus poussée

Imaginons que nous voulions découper séparer d'un coté des fonctions et d'un autre la logique métier.

<?php
    include('./functions.php');

    if (square(10, 10))
    {
        echo "Carré !"
    }
<?php
    function square ($width, $height)
    {
        return ($width == $height);
    }

metier.php

functions.php

Ce code affichera donc "Carré !".

Avec ce code, on vois que le contexte du fichier metier.php a fusionné avec celui de functions.php, puisqu'il a désormais accès aux fonctions définies à l'intérieur de celui-ci.

Dans le cas présent, le fichier functions.php ne définis pas de variables particulières. Si cela avait été le cas, elles auraient été disponibles pour metier.php

D'autres fonctions d'inclusion

La fonction include n'est pas la seule permettant d'inclure un fichier. Il existe d'autres fonctions faisant la même choses, mais avec quelques particularités.

include_once : Même comportement que include, mais n'inclura le fichier qu'une seule fois. S'il a déjà été inclus, l'instruction sera ignorée.

require : Même comportement que include, mais arrête le programme si le fichier n'est pas trouvé.

require_once : Comme require, mais n'inclura le fichier qu'une seule fois.

TP : Créer un site meteo

Créer un site méteo simple

L'objectif de ce TP est de créer un site web très simple pour se familiariser avec les bases de PHP.

Ce site contiendra 3 pages, une page d'accueil avec la date, une page affichant la météo à J+4 de Paris , et une page affichant celle de Bordeaux.

index.php

paris.php

bordeaux.php

Petite subtilité, si l'heure est comprise entre 07h00 et 19h00, le fond du site sera blanc et le texte noir.

Sinon, il sera bleu nuit et le texte sera blanc.

Text

Text

Récupérer les données météo

Pour récupérer les données météo, on va simplement utiliser le widget du site https://www.prevision-meteo.ch/services.

Pour j+1, on remplace 0 par 1, j+2 par 2... jusqu'à 4.

Les bases du PHP

By plebweb

Les bases du PHP

  • 1,132