Le cours de PHP vous plonge dans le monde du développement web dynamique en utilisant l'un des langages de script côté serveur les plus populaires et puissants. PHP (Hypertext Preprocessor) est largement utilisé pour créer des sites web interactifs et des applications web robustes.
Le langage PHP est utilisé pour créer des applications dynamiques sur le web. Contrairement aux langages comme HTML et CSS qui sont interprétés par le navigateur du client, PHP est un langage côté serveur, ce qui signifie que le serveur hébergeant le site web exécute le code PHP et génère du contenu web (généralement HTML, CSS et parfois JavaScript) qui est ensuite envoyé au navigateur du client. PHP peut également produire d'autres formats web comme le PDF, le SVG, ou des images bitmap.
Il est largement utilisé avec le serveur Apache, mais il peut aussi fonctionner avec d'autres serveurs HTTP comme IIS. PHP permet de récupérer des informations à partir d'une base de données, d'un système de fichiers ou des données envoyées par les utilisateurs via des formulaires web.
PHP est un langage peu rigide et facile à apprendre, mais cela peut entraîner des failles de sécurité si le code n'est pas correctement écrit. Malgré cela, PHP est largement utilisé pour le développement web en raison de sa flexibilité et de sa facilité d'utilisation.
Il est multiplateforme, ce qui signifie qu'il peut fonctionner sur différents systèmes d'exploitation comme Linux et Windows. PHP est également libre, gratuit et simple à installer, mais nécessite une bonne compréhension des concepts de programmation et des bonnes pratiques de sécurité.
La version 5.3 de PHP a introduit de nombreuses fonctionnalités, y compris les espaces de noms, les fonctions anonymes et les fermetures, ce qui a permis de simplifier le développement d'applications web plus complexes.
Serveur localIl faut savoir que pour interpréter des fichiers PHP (avec l'extention .php) votre ordinateur à besoin d'un serveur (dit local). En effet, sans aucun serveur, votre PC ne saura pas traduire le langage PHP et renverra une page web blanche.
Alors ne vous inquietez pas vous n'aurez pas à débourser le moindre euros pour obtenir un serveur local pour travailer sur vos projets chez vous. Il existe en effet des logiciels qui regroupe tous les programmes qui permettent de créer un réseau local(apache, mysql et php). Se sont les même qui sont installer sur des "vrais" serveurs.
WAMP sous windowsSous windows il existes un logiciel bien répandu des developpeurs web qui permet d'obtenir une architecture complète. Il se nomme wamp. Pour le télécharger rendez-vous sur la page du site : . Une fois téléchargé, installez-le en laissant toutes les options par défaut. Il devrait s'installer dans un répertoire comme C:\wamp et créer un raccourci dans le menu Démarrer.
LAMP sous linuxSous Linux, il est courant d'installer Apache, PHP et MySQL séparément. Toutefois, il existe aussi des packs tout prêts comme XAMPP (X Apache MySQL Perl PHP), anciennement connu sous le nom de LAMPP. Ce pack est plus complet que WAMP pour Windows ou MAMP pour Mac OS X. Nous n'utiliserons toutefois qu'une partie des éléments installés. Sur le site officiel de XAMPP : lien, recherchez le lien XAMPP pour Linux.
Lorsque que l'on apprends un langage, il est courant que la première chose qu'on apprene est d'afficher un "Hello World !". On va donc débuter par là, et on va donc par la même occasion apprendre un mot-clé que vous utliserez 95% de votre temps lorsque que vous aller développer en PHP.
Créez donc un fichier php portant le nom de echo.php dans le dossier wamp/www/cours/ et copiez le code suivant
<?php echo "Hello World !"; ?>
Que ce passe t'il à l'écran ? Si vous obtenez une erreur, vérifier bien que le code que vous avez écris ne comporte pas d'erreurs, sinon vous devriez avoir ça :
Hello World !
Décortiquons ce code.
Une dernière chose avant de partir dans la pratique. Vous pouvez comme dans tout langage, créer ce qu'on appel des commentaires. Il permettent de se reperer dans le fichier et de laisser des informations utile. On les déclare de deux façons différente : Sur une ligne ou sur plusieurs lignes.
//Je suis un commentaire sur une ligne
/*je suis
un commentaire
sur plusieurs
lignes ! */
Deuxième chose à connaitre lorsque l'on débute le PHP c'est les variables. Derrière ce nom se cache la force du php et même de tous les autres langages ! Pour vous faire une image, les variables sont comparable à des poches. Elle permettent de stocker une donnée, une information ou un texte et de pouvoir ensuite les utilisé pour plusieurs choses. Il faut tout de même savoir qu'une variable existe que pendant la page en court. En gros, lorsque vous changer de pages, la variable "meurt" et n'est plus accessible.
Pour déclarer une variable on utilises le signe dollars ($) devant son nom. puis ensuite on lui assigne une valeur ou une donnée avec le signe égale (=). Si la valeur est une chaine de caractère (un texte), alors on l'entour de guillemets.
<?php
// Déclaration d'une variable nommé : texte.
// La variable Texte contient le texte -Hello World-.
$texte = "Hello World !";
// On affiche le contenu de la variable :
echo $texte;
?>
Le résultat obtenu devrait être le même que l'echo réaliser juste avant.
On peut aussi assigner une variable à une variable, combiner une variable avec une chaine de caractère (texte) ou même associer deux variable dans une seule !
<?php
$variable = "hello world !";
echo $variable;
$mot = "hello";
$texte = $mot." World !";
echo $texte;
$mot1 = "hello ";
$mot2 = " World !";
$montexte = $mot1.$mot2;
echo $montexte;
?>
Comme on peut le voir, j'utilises le point (.) pour séparer une variable d'une chaine de caractère, ou même pour séparer deux variables. c'est ce qu'on appel la concaténation. Cela permet de bien faire la différence et d'avoir un code lisible.
Les variables permettent aussi de faire des calculs. Mais pas de panique ! Se ne sont pas des opérations scientifique. On réalise simplement les quatres opérations de base (addition, soustraction, multiplication et division). Je vous est fait un tableau avec les signes "informatique" à connaitre pour réaliser les calculs simple :
Symbole | Signification |
---|---|
+ | Addition |
- | Soustraction |
* | Multiplication |
/ | Division |
% | Modulo |
Pour la suite, si vous n'avez pas dormi en cours de math à l'école primaire alors c'est tout simple.
<?php
$resultat = 5 + 7;
echo $resultat;
$resultat = 4 - 3;
echo $resultat;
$resultat = 8 * 4;
echo $resultat;
$resultat = 6 / 2;
echo $resultat;
?>
Nous voici maintenant au chapitre 3 de PHP. Sachez tout de même que j'aborde avec vous le langage PHP d'une façon simpliste volontairement. On va donc maintenant voir une partie assez important du langage : Les conditions. D'ailleurs à la fin de ce chapitre, vous aurez un petit exercice. Car oui, vous êtes capable de créer un petit fichier php à l'heure où je vous parle.
Donc pour commencer, c'est quoi une condition ? Vous aller sûrement vous dire que je vous poses une question bête mais c'est pourtant très important de savoir répondre à cette petite question pour la suite. Donc une condition c'est effectuer une action en fonction de la valeur retourner. Petit exemple parlant :
<?php
if($prenom == "Anthony") {
echo "Tu es le propriétaire, tu peut passer.";
} else {
echo "Seul le propriétaire de ces lieux à le droit de passer.";
}
?>
Si on reprends le code que je viens de vous ecrire, on a deux nouveau mots-clés :
if et else
qui se traduit par si et sinon. Donc normalement, vous devriez avoir compris la conditions. Elle se traduit par
Si le prénom est égale à "Anthony" alors on laisse passer sinon, on refuse.
La condition doit être inscrite entre les parenthèse et le résultat toujours entre les accolades (du if ou du else). Si vous avez fait attention, vous remarquerez que j'ai utiliser deux signes "égale" lors de la conditon. J'ai fait ce qu'on appel une comparaison. On peut faire en tout six comparaisons lors d'une condition (il en existe des autres mais qui ne sont pas aussi répendues):
Symbole | Signification |
---|---|
== | égale à |
=== | Strictement égale à |
> | Supérieur à |
>= | Supérieur ou égale à |
< | Inférieur à |
<= | Inférieur ou égale | != | Différent de | !== | Strictement différent de |
*Il est à noter que les <Strictement> vérifie le type en plus de l'égalité. C'est pour ça que l'on dit qu'une variable est strictement égale à un autre (elles sont identique ET de même type).
On en viens donc au petit exercice. Créer un fichier php portant le nom que vous voulez. Et je voudrais que vous fassiez une condition qui vérifie l'âge. Si l'âge est inferieur à 18 ans, alors on ne fait pas passer sinon, on laisse entrer.
Vous aller créer la condition en utilisant la variable age. Vous devrez inscrire le résultat de la condition dans une variable nommer droit et l'afficher en l'aide d'un echo en dehors de la condition.
(n'oubliez pas de déclaré votre variable avant la condition).
<?php
$age = null;
if($age < 18)
{
$droit = "Tu es trop jeune, tu ne peut pas passer.";
}
else
{
$droit = "Tu as plus de 18 ans. Tu peut entrer.";
}
echo $droit;
?>
Si vous n'avez pas réussi du premier coup, ce n'est pas très grave ! Il suffit de bien relire ce chapitre et retenter votre chance.
Sachez que dans une condition il n'existe pas seulement les "si" et "sinon". Il y a une troisième option : le "sinon si" ! En PHP il se traduit par elseif. Il permet de mettre en condition un sinon
<?php
if($prenom == "Anthony")
{
echo "Salut Anthony, tu peut passer.";
}
elseif($prenom == "Jordan")
{
echo "Jordan, tu as le droit de passage pour cette fois.";
}
else
{
echo "Tu n'as pas le droit de passer...";
}
?>
En PHP, il est possible d'écrire des conditions IF/ELSE de manière condensée sur une seule ligne. Cette technique, souvent appelée "ternary operator" (opérateur ternaire), permet de simplifier et de rendre le code plus concis, surtout pour les conditions simples. L'opérateur ternaire utilise la syntaxe suivante :
<?php (condition) ? (valeur_si_vrai) : (valeur_si_faux); ?>
Cette expression évalue la condition ; si elle est vraie, elle retourne la valeur_si_vrai, sinon elle retourne la valeur_si_faux. C'est une méthode pratique pour effectuer des affectations rapides ou des retours de valeurs sans écrire des blocs IF/ELSE plus longs.
par exemple, la condition suivante :
<?php
$age = 20;
if ($age >= 18) {
$message = "Vous êtes majeur.";
} else {
$message = "Vous êtes mineur.";
}
echo $message;
?>
Peut se traduire en une condition ternaire beaucoup plus condensé :
<?php
$age = 20;
$message = ($age >= 18) ? "Vous êtes majeur." : "Vous êtes mineur.";
echo $message;
?>
On a vu qu'avec les conditions On pouvait tester les valeurs et afficher un résultat différent selon la condition. Maintenant imaginez qu'on veuillent faire un système de choix. Comment vous feriez ?
Exercice
Je vous lance un petit défi. Faites un petit fichier php qui affiche un plat en fonction de la valeur de la variable choix (1, 2, 3, 4, 5).
Prêt ? Alors go !
Normalement votre résultat devrait ressembler plus ou moins à ça :
Vous ne trouvez pas ça un peut long et répétitif à écrire ? Bonne nouvelle ! Il y a un moyen plus simple pour faire ça. Et en plus c'est très simple, c'est le switch ! On pourrais le comparer à une commode à tiroir. Ces derniers contiendrais les "choix" disponibles.
Avant toute choses, voyons la structure d'un switch :
<?php
switch($choix'])
{
case "":
break;
case "":
break;
case "":
break;
default;
break;
}
?>
Comme un exemple vaut mieu qu'un long discourt :
<?php
switch($action)
{
case "frites":
echo 'Miam les frites';
break;
case "hamburger":
echo "Comme au MacDo !";
break;
case "carbonara":
echo "Un bon repas italien";
break;
case "haricots":
echo "Avec du beurre c'est meilleur !";
break;
case "epinard":
echo "À la crême et au oeufs.";
break;
default;
echo "Tu n'a pas fait ton choix"
break;
}
?>
En PHP on utilises souvent voir tout le temps les variables. Et bien sachez qu'avec les tableaux, leurs puissances va encore augmenter ! En effet, les arrays (tableaux) permettent de créer des variables contenant plusieurs valeurs ! D'un point de vue abstrait, on pourrais dire que les tableaux peuvent ressembler à ça :
<?php
$variable valeur 1 = "un";
$variable valeur 2 = "deux";
$variable valeur 3 = "trois";
?>
Il faut donc créer un tableau qui n'est autre que variable contenant plusieurs valeurs. On utilise pour ça un mot-clé : array(). Entre les parenthèses, on entre les valeur entre guillemets ou apostrophes et on les sépares par des virgules :
<?php
$tableau = array('un', 'deux', 'trois');
?>
Maintenant, vous allez essayer d'afficher le contenu de $tableau à l'aide d'un echo.
Tout fonctionne ?
Et oui, je l'ai fait exprès ! en fait, votre code marche parfaitement à un détail prêt. Comme la valeur de la variables n'est ni un string ni un int, float etc... (string: chaine de caractères, int: nombre entier, float nombre à virgule) alors php n'arrive pas à lire son contenu. Mais pas de panique, il y a une solution.
En fait, il peut lire son contenu mais attends un paramètre à la fin de votre variable : l'identifiant de la valeur que vous souhaité afficher (un, deux, ou trois). C'est là toute la puissance des arrays ! La valeur de la variable est différente selon l'id du tableau. Ici, les id contiennent les valeurs entre apostrophes (un, deux, trois). Et pour demander un id rien de plus simple ! Il sont numéroté :) . Toute fois attention car dans un array, la première valeur n'a pas pour id : 1 mais 0. On pourrais comparer ça aux immeubles, qui commence par un étage 0 puis 1, 2,3 etc...
Donc, vous êtes maintenant capable d'afficher la valeur que vous souhaitez :
<?php
$tableau = array('un', 'deux', 'trois'); // On créer la variable $tableau contenant un array avec comme valeur un deux et trois
echo $tableau[0]; // Affichera : un
echo $tableau[1]; // Affichera : deux
echo $tableau[2]; // Affichera : trois
?>
Il existe un deuxième type de tableau, c'est les array ordonné. Il permettent de donner un identifiant voulu à une valeur. Par exemple au lieu d'avoir comme id '0' pour la valeur un du dessus, on aurait bien pu lui donner le nom de l'id qu'on voulez. Sachez que des avantages sur les deux type de tableaux existe et qu'aucun prends le pas sur l'autre.
Juste avant j'utilisais le mot-clé : id mai sachez qu'on appelle cela une clé. Dorénavant, j'utiliserais ce terme, alors comprenez bien que id = clé.
Pour créer un array ordonné il suffit d'assigné une clé à une valeur. Pour cela on n'utilise pas le = qui permet déjà d'assigner une valeur à une variable. Mais c'est presque ça, on utilise => (signe égale + chevron).
Créons maintenant le fameux array ordonné :
<?php
$tableau = array('cle_un' => 'Valeur de la clé 1', 'cle_deux' => 'valeur de la clé 2');
echo $tableau['cle_un'];
echo $tableau['cle_deux'];
?>
comme vous pouvez le constatez, pour afficher la valeur du tableau, on utilise toujours la clé, mais maintenant qu'elle a un nom, plus besoin de 0, 1, 2...
Les boucles permettent de répéter une information plusieurs fois, et ça c'est bien pratique ! Prenons l'exemple de news sur un site. En général, sur les pages d'accueil on a une liste des derniers news qui peuvent être affiche sous la forme d'une liste :
Ou même par bloc, bref, vous avez compris où je veut en venir. Ce système utilise les boucles. On va voir dès à présent deux types de boucles. Sachez que les boucles fonctionne un peu sur le même principe que les condition, à la différence que la boucle répète une commande tant que la condition n'est pas remplie. Quand la condition est satisfaite, alors on sort de la boucle.>
Le premier type de boucle est while qui peut se traduire par tant que. Alors, comment créer une boucle while :
<?php
while($nombre <= 10)
{
$nombre = $nombre + 1;
}
// ...suite du code
?>
Dans cet exemple, je créer une boucle qui à pour rôle d'ajouter 1 à $nombre tant que $nombre est inférieur ou égale à 10. Donc dès que $nombre atteinds la valeur de 10 la boucle s'arrête et on continue la suite du code.
Comme un exemple vaut mieu qu'un long discours, on va executer un script qui affiche 10 ligne. Créons donc un fichier lignes.php et inscrivez le code suivant :
<?php
// on créer la variable $numero_ligne et on lui donne la valeur 0
$numero_ligne = 0;
// On créer une boucle qui affiche le nombre de ligne (10)
while($numero_ligne <= 10)
{
echo 'Ligne numero '.$numero_ligne.'
';
$numero_ligne++; // Cela reviens au même que faire
$nombre_ligne = $nombre_ligne + 1
}
?>
Dans cet exemple, vous devriez normalement obtenir:
Ligne numero 0
Ligne numero 1
Ligne numero 2
Ligne numero 3
Ligne numero 4
Ligne numero 5
Ligne numero 6
Ligne numero 7
Ligne numero 8
Ligne numero 9
Ligne numero 10
Si ce n'est pas le cas, alors vérifiez bien que vous n'avez pas oublier de mettre un ";" ou que vous avez bien concatener votre echo.
Assurez vous que la condition de la boucle soit au fausse au moins une fois. Car si ce n'est pas le cas, alors la boucle serait exécutée à l'infini !
Le second type de boucle est la boucle for. Cette dernière est plus complexe à apréhender mais ne vous inquietez pas, elle n'est pas compliquée. Le résultat obtenu sera le même quelque soit la boucle utilisée. Je vous montre les deux type car certains préfère while et d'autre for.
Comme je vous l'ai dit, cette boucle est un peu plus complexe car elle est condensé sur une même ligne. Regardons ça:
<?php
for($numero_ligne=0; $numero_ligne <= 10; $numero_ligne++)
{
echo 'Ligne numero '.$numero_ligne.'
';
}
?>
Comme vous le voyez, tout ce passe dans la condition. On créer la variable $numero_ligne avec comme valeur 0, puis on indique la condition, et ensuite on incrémente la variable il est important de séparer ces 3 élements par des points-virgule. Enfin, dans la boucle on indique le numéro de la ligne.
Maintenant que vous conaissez les boucles, je vais pouvoir vous apprendre à parcourrir les tableaux ! Et oui, lorsque un array est créer, il nous arrive très souvent de devoir le parcourrir pour savoir ce qu'il contient. Nous allons étudier deux moyens de le faire dont un que vous conaissez déjà ! For et Foreach.
Cette boucle est utilisée très souvent pour la array simples (souvenez-vous, les tableaux sans clé défini). En effet, comme les clés sont des numéros, alors il devient très simple de le parcourrir à l'aide de la boucle for ! While marche tout aussi bien mais for est beaucoup plus répendu pour parcourrir les tableaux.
<?php
// On créer un array contenant les pays.
$pays = array('France', 'Angleterre', 'Italie', 'Portugal', 'Allemagne');
//puis on créer une boucle pour tout afficher
for ($numero=0; $numero < 5; $numero++)
{
echo $pays[$numero].'
';
}
?>
Pas trop compliquer n'est-ce pas ! Si vous avez tout compris jusque là, alors on peu continuer, sinon révisez vos cours héhé !
Même si for s'en sort très bien avec les tableaux, sachez tout de même que foreach est spécialement créer pour ! Cette boucle est utiliser exclusivement pour les tableaux en fait. Voyons le code ensemble et décortiquons après :
<?php
$pays = array('France', 'Angleterre', 'Italie', 'Portugal', 'Allemagne');
foreach ($pays as $cle)
{
echo $cle.'
';
}
?>
Première chose qu'on remarque : Moins de chose à écrire ! En effet, comme je vous l'ai dit foreach est créer exprès pour parcourir les tableaux. De ce fait, pas besoin de connaître à l'avance le nombre d'éléments ou d'incrémenter la boucle le fait toute seul !
Alors concrétement qu'est-ce qu'on fait ? Et bien on renseigne la variable du tableau (ici $pays) et on attribut à chaque tours la valeur de la clé dans une variable (ici $cle). Il ne nous reste plus qu'a afficher la valeur de $cle qui changera à chaque tour de boucle
Mais ce n'est pas tout ! Foreach permet aussi de parcourrir un tableau ordonnée ! Il faut juste rajouter une variable qui prendrait la valeur du tableau :
<?php
$membre = array(
'prenom' => 'Anthony',
'age' => '25 ans',
'adresse' => '2 rue truc',
'ville' => 'bidule-city'
);
foreach ($membre as $cle => $valeur)
{
echo $cle.' => '.$valeur.'
';
}
?>
Comme vous le voyez, la valeur est lié à la variable $valeur
Les formulaires sont un élément clé des sites web interactifs, permettant aux utilisateurs de soumettre des données qui peuvent être traitées par un serveur. En PHP, les formulaires sont couramment utilisés pour capturer des informations de l'utilisateur et effectuer diverses opérations telles que l'enregistrement de données, les authentifications, et plus encore.
Commençons par créer une page HTML simple contenant un formulaire avec un input text et un bouton de validation :
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mon super formulaire</title>
</head>
<body>
<form action="" method="POST">
<input type="text" name="message">
<button>Valider</button>
</form>
</body>
</html>
Maintenant qu'on a notre formulaire, on peut le traiter ! C'est à dire récupérer les données entrée par l'utilisateur. Pour ça, on a besoin en premier lieu de vérifier l'existence de la donnée entrée par l'utilisateur. Pour ce faire, une simple condition avant même de traiter l'HTML:
<?php
$message = null;
if(!empty($_POST) || $message != "") {
$message = "<p?>Valeur de message : {$_POST['message']}</p?>";
}
?>
Alors, que fait ce bout de code ?
Maintenant qu'on à vérifier ça, on peut afficher la valeur de la variable $message en dessous de notre formulaire avec un simple :
<?php echo $message ?>
// La même chose -> <?= $message ?>