Apprendre PHP Facilement - Le Tutoriel Complet - IONOS
Apprendre PHP Facilement - Le Tutoriel Complet - IONOS
Apprendre PHP Facilement - Le Tutoriel Complet - IONOS
débutants
L'équipe éditoriale IONOS
22/02/2023
59 mins
Sommaire
PHP est l’un des langages de programmation les plus courants pour la
programmation côté serveur. Au fil du temps, PHP est devenu un élément
indispensable de nombreux sites Web et technologies Internet modernes. Apprendre
PHP peut toutefois être un défi considérable pour les débutants. Dans ce tutoriel
PHP, nous vous présentons les bases de ce langage de programmation apprécié,
ainsi que les principaux opérateurs, boucles et fonctions.
Hébergement Web
Hébergement Web flexible, performant et sûr
php
<?php
phpinfo();
?>
Un éditeur de texte tel que Notepad++ vous aide à programmer grâce à la coloration
syntaxique.
Les scripts PHP présentent toujours une structure au schéma identique. La balise
PHP ouvrante <?php indique qu’un environnement script est débuté. Elle est suivie
du code PHP, présenté sous forme d’instructions. Dans notre exemple, la fonction
phpinfo() est appelée. La plupart des fonctions PHP nécessitent un ou plusieurs
paramètres entre parenthèses ; dans phpinfo(), ces paramètres sont optionnels :
phpinfo( INFO_ALL ). Chaque énoncé se termine par un point-virgule (;). Enfin, pour
fermer l’environnement script, on utilise la balise PHP fermante suivante : ?> .
Definition
Les fonctions sont des sous-catégories permettant d’externaliser des parties
du code du programme. Pour éviter la redondance, les tâches récurrentes
peuvent être définies la première fois en tant que fonction, puis appelées à
l‘aide d’un nom de fonction. Les développeurs Web utilisent pour ce faire des
fonctions PHP prédéfinies ou créent leurs propres sous-programmes.
:
Sauvegardez le fichier texte au format .php (script PHP) en le renommant test, puis
démarrez votre serveur Web. Si vous utilisez l’environnement de test XAMPP, placez
test.php dans le répertoire XAMPP à l’emplacement htdocs (C:\xampp\htdocs).
Le fichier d’exemple est ensuite accessible via l’URL suivante dans le navigateur Web :
http://localhost/test.php . Si vous utilisez un serveur Web différent ou une
configuration personnalisée du logiciel XAMPP, sélectionnez l’URL en fonction du
chemin de fichier correspondant.
Si PHP est correctement installé, la page Web suivante devrait apparaître comme
résultat de l’exécution du script :
Lorsqu’un script est exécuté avec la fonction *phpinfo()*, le navigateur affiche les
informations relatives à la configuration de PHP.
:
La fonction phpinfo() est l’abréviation de la valeur par défaut phpinfo(INFO_ALL), qui
affiche des informations détaillées sur la configuration PHP de votre serveur Web. Si
aucune version de PHP ne peut être trouvée, le navigateur Web affiche un message
d’erreur ou transmet le code PHP au navigateur sans l’interpréter.
Definition
Les structures de langage sont des instructions utilisées en PHP, qui servent à
contrôler le déroulement du programme. Les structures de langage incluent
des instructions echo, comme if, for, do, include, return, exit ou die. C’est
pourquoi, contrairement aux fonctions, il n’est pas nécessaire d’utiliser des
crochets lorsque l’on fait appel à des mots-clés.
php
<?php
echo 'Hello World!';
?>
La balise ouvrante <?php débute l’environnement de script. Elle est suivie par la
structure de langage echo, par la chaîne de caractères Hello World! entre guillemets
et par la balise ?> qui ferme le script. Soyez vigilant au point-virgule après
:
l’instruction. Il est évidemment possible d’utiliser n’importe quel texte à la place de
Hello World!.
Enregistrez ensuite le script sous le nom hello.php dans le dossier htdocs sur votre
serveur Web, puis ouvrez le fichier via l’URL http://localhost/hello.php dans le
navigateur. Si le code a été correctement transféré, la fenêtre du navigateur doit
maintenant afficher la chaîne de caractères que vous utilisez :
Chaque texte publié grâce à echo peut être paramétré avec des balises HTML si
nécessaire. Ces balises sont ensuite interprétées par le navigateur Web selon la
spécification HTML. Jugez par vous-même avec l’exemple de script suivant :
php
<?php
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>
Si le résultat de l’exécution du script contient des balises HTML, elles sont automatiquement
interprétées par le navigateur Web.
Grâce à la balise <h1> , la chaîne Hello World! est interprétée par le navigateur Web
comme un titre de premier niveau. Elle est suivie d’un saut de ligne automatique et
du paragraphe de texte <p> .
En fonction des besoins, echo peut être utilisée avec des guillemets simples (’) et
doubles (“). Si vous souhaitez seulement publier du texte, le choix des guillemets n’est
pas important. Il le devient en revanche lorsque les variables PHP entrent en jeu.
Les variables
La structure de langage echo va bien au-delà de la simple publication d’un texte qui,
finalement, pourrait être mise en œuvre sans PHP, sur la base du HTML. La réelle
valeur ajoutée d’echo repose sur les variables, ces éléments permettant à l’instruction
de créer des textes de manière dynamique.
Les utilisateurs de PHP rencontrent des variables, par exemple sous la forme
suivante : « $exemple ».
Chaque variable se compose d’un signe dollar ($) suivi du nom de la variable. On
:
utilise les variables dans les scripts PHP pour intégrer des données externes dans des
pages Web. Il peut s’agir de valeurs de différents types, de simples nombres et
chaînes de caractères à des textes entiers, en passant par des structures de
document HTML.
Type de
variable Description
String String, qui signifie corde, correspond à une chaîne de caractères. Il peut
s’agir d’un mot, d’une phrase, d’un texte ou du code HTML complet
d’une page Web.
Integer Un integer est un entier sans décimales. Il peut être positif ou négatif.
Array Un array est une variable pouvant contenir plusieurs éléments : il s’agit
d’un regroupement de plusieurs données de structure similaire,
rassemblées pour former un tableau.
php
$exemple = "Valeur";
PHP offre une grande liberté en ce qui concerne le nom des variables, que vous
pouvez nommer à votre guise tant que les contraintes suivantes sont respectées :
Voici un exemple :
php
<?php
$author = "John Doe";
echo "<h1>Hello World!</h1>
<p>This dynamic web page was created by $author.</p>";
?>
Lors de l’exécution du script, la variable $author a été remplacée par la valeur John Doe.
Si la page Web n’a pas été créée par John Doe mais par son collègue allemand Max
Mustermann, modifiez simplement la variable $author pour corriger l’erreur.
:
La variable $author a été remplacée par la valeur Max Mustermann.
Ceci est particulièrement efficace si une variable intervient plus d’une fois dans un
script. Dans ce cas, une seule modification suffit pour en corriger toutes les
occurrences, puisque c’est ici que la valeur de la variable est définie.
C’est là que réside la puissance de PHP : le contenu peut être intégré sous forme de
variables. Cette fonctionnalité constitue la base du développement Web dynamique.
À l’inverse des pages Web statiques, disponibles sous forme de pages HTML prêtes à
l’emploi, les pages Web dynamiques ne sont créées que lorsque l’utilisateur cherche
à les afficher. L’interprète PHP utilise les variables pour charger les éléments
individuels de la page Web à laquelle on souhaite accéder : pour ce faire, il a recours
à différentes bases de données dont il assemble les éléments dans une page HTML
adaptée à une requête spécifique.
Les avantages de ce concept sont évidents : lorsque des éléments du site Web (par
exemple dans la zone de pied de page) sont modifiés, il n’est pas nécessaire de
procéder à des ajustements manuels sur chaque sous-page du projet Web. Il suffit au
contraire de mettre à jour l’entrée en question dans la base de données. De cette
façon, la révision est automatiquement adoptée pour toutes les pages Web qui
incluent les données correspondantes en tant que variables. Si une variable est
définie plusieurs fois dans un script, chaque nouvelle définition remplace la
précédente. L’instruction echo met toujours en œuvre la valeur actuelle d’une
variable.
:
php
<?php
$author = "John Doe";
echo "<h1>Hello World!</h1>
<p>This dynamic web page was created by $author.</p>";
$author = "Max Mustermann";
echo " <p>Supported by $author.</p>";
?>
Dans l’exemple de code, la variable $author reçoit d’abord la valeur John Doe, qui est
ensuite remplacée par Max Mustermann.
En ce qui concerne les guillemets, les règles sont différentes. En effet, à l’inverse des
chaînes de caractères, les variables individuelles n’ont pas besoin d’être citées entre
guillemets :
php
<?php
$author = "John Doe";
echo $author;
:
?>
Ceci n’est pas valable si la variable est utilisée dans une chaîne de caractères. Dans ce
cas, utilisez les doubles guillemets (“). Ceux-ci permettent d’indiquer à l’interprète
PHP qu’il doit chercher dans la chaîne de caractères des variables pouvant être
remplacées par les valeurs associées. Les chaînes de caractères entre guillemets
simples (’) sont interprétées et affichées comme des informations en texte brut, bien
qu’il s’agisse de variables.
php
<?php
$author = "John Doe";
echo '<h1>Hello World!</h1>
<p>This dynamic web page was created by $author.</p>';
?>
Les guillemets simples permettent de publier du texte brut. Les variables ne sont pas
interprétées.
Si vous oubliez complètement les guillemets, PHP signale une erreur de syntaxe.
:
Messages d’erreur et masquage
En cas d’erreurs syntaxiques, le code PHP n’est pas valide et l’interprète PHP émet
un message d’erreur. Par exemple, ceci se produit si l’on utilise l’instruction echo avec
une chaîne de caractères sans guillemets :
php
<?php
echo Hello World!;
?>
En général, les messages d’erreur comportent des informations sur l’origine d’une
erreur et fournissent des éléments significatifs pour la corriger.
php
<?php
echo '\'Hello World!\' ';
?>
Lorsque des caractères sont masqués par un backslash, ils sont dispensés de leurs fonctions
initiales.
php
<?php
echo " 'Hello World!' ";
?>
:
Mais pas de la façon suivante :
php
<?php
echo ' 'Hello World!' ';
?>
Pour plus de lisibilité des exemples, des espaces ont été insérés entre les guillemets,
mais il ne faut pas en ajouter dans la pratique.
php
<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo "<h1>Hello World!</h1>
<p>This dynamic web page was created by $author1 and $author2.</p>";
?>
Il vous suffit d’écrire les deux variables avec le reste du texte à publier dans la chaîne
de caractères placée entre guillemets doubles. PHP détecte automatiquement les
variables grâce au signe dollar ($) et insère les valeurs correspondantes.
:
PHP n’accepte les variables de la chaîne que si le script ne contient pas de fonctions.
Cependant, cette méthode est mal vue par la plupart des programmeurs, car le
principe le plus répandu veut que les variables ne fassent pas partie de la chaîne
de caractères. Ceci s’explique notamment par le fait que cette séparation est
prescrite dans de nombreux langages de programmation. En outre, PHP exige
également la séparation de la chaîne et de la variable lorsque l’on travaille avec des
appels de fonction ou des variables plus complexes. Il est donc conseillé d’appliquer
systématiquement cette séparation, même dans le cas d’une publication de texte
brut, bien que ce ne soit pas absolument nécessaire.
Lorsque l’on travaille avec des variables, il est essentiel de gérer plusieurs éléments
liés entre eux pour la production. En PHP, c’est le rôle de l’opérateur de
concaténation (.).
Le code de l’exemple ci-dessus doit ressembler à ceci s’il est programmé de façon «
propre » :
php
<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo '<h1>Hello World!</h1>
:
<p>This dynamic web page was created by ' . $author1 . ' and ' . $author2
?>
Il s’agit donc de trois chaînes de caractères et deux variables qui sont concaténés en
une seule chaîne.
php
<?php
$example = 'Hello ';
$example .= 'World';
echo $example;
?>
PHP ajoute la nouvelle valeur à celle définie au préalable. Si vous souhaitez insérer
une espace entre les deux valeurs, insérez-la à la fin de la première chaîne de
caractères, comme dans l’exemple.
Toutes les autres sections du document sont ignorées par l’interprète et transmises
au serveur Web telles quelles. Le code PHP peut ainsi être intégré à des documents
HTML, au choix, par exemple pour créer un modèle de système de gestion de
contenu. Assurez-vous que les documents HTML contenant du code PHP sont
enregistrés dans des fichiers PHP. Sinon, le document n’est pas prétraité par
l’interprète PHP, mais livré directement au navigateur Web, ce qui ferait apparaître le
code du programme sous forme de texte sur le site Web. On peut donc imaginer
l’interprète PHP comme un collègue un peu paresseux du serveur Web, qui ne
travaille que lorsqu’on lui demande de le faire, par exemple en ouvrant une balise
PHP. Si vous souhaitez combiner HTML et PHP, rédigez la page HTML selon la
structure classique du document, puis enregistrez-la sous l’extension de fichier .php :
html
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>My first PHP page</title>
</head>
<body>
<h1>Hello World</h1>
<p>What is the current time and date?</p>
</body>
</html>
Ajoutez ensuite un script PHP dans votre document HTML. Il s’agit de veiller à ce que
l’intégralité du code du programme se trouve à l’intérieur des balises PHP.
:
html
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>My first PHP page</title>
</head>
<body>
<h1>Hello World</h1>
<p>What is the current time and date?</p>
<p>Your current time and date is:
<?php
echo date("d.m.Y H:i:s");
?>.</p>
</body>
</html>
Dans l’exemple, nous avons combiné la structure de langage echo avec la fonction
PHP date() pour afficher la date et l’heure actuelles sous forme de texte côté serveur.
Le paramètre de la fonction spécifie le format souhaité sous la forme d’une chaîne de
caractères :
php
<?php
#This is a single-line comment!
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
//This is also a single-line comment!
?>
L’éditeur de texte Notepad++ affiche les commentaires en vert. Les passages de texte
:
identifiés comme des commentaires dans l’environnement de script n’arrivent pas
dans le navigateur Web, à l’inverse des commentaires HTML, car ils sont ignorés par
l’interprète PHP lors de l’exécution du script.
Les lignes indiquées en tant que commentaires ne sont pas visibles dans le document final.
Vous pouvez également insérer des commentaires sur plusieurs lignes. Pour ce
faire, marquez le début d’une section de commentaire par une barre oblique suivie
d’un astérisque (/*) et la fin par un astérisque suivi d’une barre oblique (*/).
php
<?php
/*
This is a multiple-lines comment block
that spans over multiple
lines
*/
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>
:
Ces commentaires ainsi marqués ne sont pas analysés et n’apparaissent donc pas sur
le site Web.
Les commentaires sont optionnels et doivent être utilisés avec parcimonie pour
assurer une bonne lisibilité du code source.
Si les variables sont dotées de valeurs numériques, PHP offre la possibilité d’effectuer
des calculs. Commençons par une simple addition de deux nombres entiers :
:
php
<?php
$number1 = 237;
$number2 = 148;
$result = $number1 + $numer2;
echo "result: " . $result;
?>
Tout d’abord, nous attribuons aux variables $number1 et $number2 les entiers 237
et 148, puis définissons une variable $result, qui correspond à la somme des
variables $number1 et $number2. Pour ce faire, nous utilisons l’opérateur
arithmétique +(plus). Enfin, nous utilisons la structure de langageecho pour afficher
le résultat de cette addition sous forme de texte. Notez qu’il n’est pas nécessaire
d’utiliser des guillemets lorsque l’on attribue des valeurs numériques aux variables.
php
<?php
$number1 = 10;
$number2 = 5;
$addition = $number1 + $number2; //Addition
$subtraction = $number1 - $number2; //Subtraction
$multiplication = $number1 * $number2; //Multiplication
$division = $number1 / $number2; //Division
$exponentiation = $number1 ** $number2; //Exponentiation
?>
php
<?php
echo "Result of addition: " . $addition ."<br />";
echo "Result of subtraction: " . $subtraction . "<br />";
echo "Result of multiplication: " . $multiplication . "<br />";
echo "Result of division: " . $division . "<br />";
echo "10 to the 5th power (10^5): " . $exponentiation . "<br />";
echo "Square root of 81: " . sqrt(81) . "<br />";
?>
:
Aperçu des résultats des calculs
Pour les calculs complexes, il est possible de combiner les différents opérateurs
arithmétiques dans un même script :
php
<?php
$number1 = 10;
$number2 = 5;
$result = 2 *$number1 + 5* $number2 - 3 * sqrt(81);
echo "Result: " . $result;
?>
L’interprète PHP détermine les valeurs des variables et les calcule ainsi :
2 *10 + 5* 5 - 3 * √81 = 20 + 25 – 27 = 18
En PHP, les termes entre parenthèses sont aussi analysés en priorité. Voici
maintenant un exemple avec des nombres à virgule flottante :
php
<?php
$number1 = 2.5;
$number2 = 3.7;
$result = 2 *($number1 + 5)* ($number2 - 3) * sqrt(81);
echo "Result: " . $result;
?>
:
À l’instar de tous les langages de programmation courants, PHP permet aux
opérateurs d’augmenter ou de diminuer les valeurs numériques de 1. On
distingue l’opérateur pré-incrémentation, l’opérateur pré-décrémentation, l’opérateur
post-incrémentation et l’opérateur post-décrémentation.
php
<?php
$number = 0;
$result = ++$number;
echo "Result: " . $result;
?>
<?php
$number = 0;
$result = --$number;
echo "Result: " . $result;
?>
Nous diminuons ainsi la valeur 0 de la variable $number pour obtenir le résultat -1.
Le script suivant indique clairement comment augmenter une valeur avant et après
sa publication :
php
<?php
$x = 0;
echo '<p>Result: ' . ++$x;
echo '<br>x has the value ' . $x;
echo '<p>Result: ' . $x++;
echo '<br>x has the value ' . $x, '</p>';
?>
:
?>
Dans les deux cas, nous obtenons le même résultat. Dans le cas d’une pré-
incrémentation, la valeur x est augmentée avant la publication à la ligne 3, et dans le
cas d’une post-incrémentation, elle est augmentée après la publication à la ligne 5.
Les arrays PHP peuvent être visualisés comme une commode à plusieurs tiroirs,
chacun d’entre eux permettant de stocker des données. Afin de vous souvenir
:
ensuite de ce qui se trouve dans chacun de ces tiroirs, étiquetez-les avec un nom de
variable. Selon le type de tableau (ou array), il peut s’agir d’un index ou d’une clé
(key). Lorsque que vous attribuez un index sous forme de nombre à chaque tiroir
dans des tableaux indexés, cela revient à étiqueter les tiroirs d’un array associatif
avec une clé sous la forme d’une chaîne (string).
Les superglobals $_GET et $_POST contiennent une série de variables sous forme de
clés permettant d’accéder aux valeurs associées à ces clés. Voici en détail comment
cela fonctionne.
Si vous vous rendez de temps en temps sur des blogs, desboutiques en ligne ou des
forums, vous avez peut-être remarqué que l’on y trouve des URL étranges. On utilise
en général une structure qui obéit au schéma suivant :
http://nomdhote/dossier/nomdefichier.php?nomdevariable=valeurdevariable
http://www.exemple-blog.fr/index.php?id=1
Ce type d’URL peut facilement être décomposé : sur un serveur Web avec le domaine
exemple-blog.fr se trouve un fichier nommé index.php, qui sert à créer un site Web
dynamique. Il contient en général du code HTML et PHP, ainsi que des références à
des fichiers types (template) et des feuilles de style externes, soit tout le nécessaire
pour afficher un site Web.
Il s’agit probablement d’une page Web dynamique, comme l’indique l’ajout après le
point d’interrogation (?) de id=1. Cela s’appelle une chaîne de requête HTTP : elle
contient une variable (id) et une valeur (1) associée à un signe égal (=). Les
paramètres URL de ce type sont par exemple utilisés pour créer une page Web
dynamique, charger du contenu à partir d’une base de données ou sélectionner un
template approprié.
Si une URL contient plusieurs paramètres, ceux-ci sont reliés entre eux grâce à une
esperluette (&).
www.exemple-blog.fr/index.php?page=article&id=1
Pour illustrer l’utilisation de $_GET avec un exemple de code, il n’est pas forcément
nécessaire d’utiliser une base de données. Dans le script suivant, nous utilisons le
superglobal $_GET pour lire les valeurs des variables forenameetsurname d’une
chaîne de requête HTTP, et les écrire dans les variables PHP $variable1 et $variable2 :
php
<?php
$variable1 = $_GET['forename'];
$variable2 = $_GET['surname'];
echo "Hello " . $variable1 . " " . $variable2 . "!";
?>
localhost/hello.php?forename=John&surname=Doe
Cependant, le fait que les paramètres GET soient listés en texte clair dans l’URL rend
cette méthode inutilisable pour le transfert de données sensibles, comme les
formulaires en ligne. En outre, la quantité de données pouvant être transférée à
l’aide de $_GET est limitée, car les URL ont une longueur maximale.
Il est possible de contourner ces restrictions grâce à la méthode HTTP POST. Les
données ainsi transférées sont disponibles dans le superglobal $_POST.
Créez un nouveau fichier PHP nommé page1.php et copiez le bloc de code suivant :
php
L’élément HTML <form> est utilisé pour créer des formulaires. Il contient deux
attributs dans la balise ouvrante : methodetaction. L’attribut method vous permet de
définir la méthode de transfert : dans ce cas, il s’agit de HTTP-POST. L’attribut action
enregistre l’URL d’un script qui reçoit toutes les données saisies dans les champs
suivants. L’exemple montre un formulaire HTML avec trois éléments de saisie
(input type=“text”) et un bouton d’envoi (input type=“submit”). Le fichier page2.php
est défini comme le destinataire des données.
Afin d’illustrer le transfert de données via $_POST, nous utilisons pour l’interprétation
des données du formulaire un script simple, qui enregistre les valeurs transmises en
tant que variables PHP et les publie sous forme de texte. Pour ce faire, créez un
fichier page2.php et copiez-y le code de programme suivant :
php
<?php
$forename = $_POST["forename"];
$surname = $_POST["surname"];
$email = $_POST["email"];
echo "Hello " . $forename . " " . $surname . ", <br />
Your are registered with the following email address: " . $email . ".";
?>
:
Sauvegardez ensuite les deux fichiers PHP dans le dossier htdocs de votre serveur de
test, puis ouvrez le fichier page1.php dans le navigateur Web en saisissant l’URL
suivante : http://localhost/page1.php . Votre navigateur affiche maintenant
l’interface Web interactive de votre formulaire HTML.
Le formulaire HTTP page1.php rassemble les données utilisateur et les envoie au script avec
l’adresse page2.php.
Entrez ensuite les informations d’identification et appuyez sur le bouton Submit pour
transférer les variables d’un script à l’autre. Une fois que vous aurez confirmé votre
saisie sur page1.php, vous serez redirigé vers page2.php. La fenêtre du navigateur
affiche le résultat de l’exécution du script en fonction des données transmises.
:
Transfert des données grâce à la méthode HTTP POST et affichage via echo.
Les entrées d’utilisateurs collectées via les champs de saisie de page1.php sont
récupérées par page2.php selon le schéma suivant :
L’élément de langage if vous permet d’écrire des scripts de sorte que les
instructions ne prennent effet que lorsqu’une condition que vous avez déterminée au
préalable est remplie ; il peut par exemple s’agir de la saisie d’un mot de passe
correct. En PHP, les conditions sont définies de la façon suivante :
php
<?php
:
if(expression)
{
statement;
}
?>
Ce code se lit comme suit : l’instruction (statement) n’est exécutée que si la condition
dans l’expression est remplie. Une condition est toujours remplie lorsque l’élément if
affiche le résultat TRUE (vrai). Sinon, il est considéré comme FALSE (faux) et
l’instruction est ignorée.
php
if ($a == $b)
{
statement;
}
La structure se lit ainsi : si la variable $a est égale à $b, les instructions définies dans
statement sont exécutées.
php
<?php
$number1 = 10;
$number2 = 20;
if($number1 < $number2) {
echo "The condition is fulfilled ";
}
Nous définissons les variables $number1 et $number2, puis leur attribuons les
valeurs 10et20. Nous établissons ensuite la condition suivante : si $number1 est
inférieur à $number2, la chaîne spécifiée dans l’instruction echo doit être affichée.
php
<?php
if(condition a)
{
Instruction b;
}
else
{
Instruction c
}
?>
Complétons notre script avec la structure else et remplaçons l’opérateur comparatif <
(Est inférieur) par == (Est égal) :
php
<?php
$number1 = 10;
$number2 = 20;
if($number1 == $number2)
{
echo "The condition is fulfilled";
}
else
{
echo "The condition is not fulfilled";
}
?>
:
?>
Cette fois, l’élément if donne le résultat FALSE. La valeur de la variable $number1 est
différente de celle de $number2. La condition n’est pas remplie. Cela signifie que la
condition n’est pas exécutée selon la structure if, mais selon la structure else.
Si la condition n’est pas remplie, elle est définie selon l’instruction else.
Note
Si l’exécution d’un fragment de code dépend de l’égalité de deux valeurs, le
langage PHP utilise un double signe égal (==). Le signe égal simple (=) n’est
utilisé que pour affecter des valeurs aux variables.
php
<?php
:
$number1 = 10;
$number2 = 20;
if ($number1 == $number2)
{
echo "The numbers are equal.";
}
if (!($number1 == $number2))
{
echo "The numbers are not equal.";
}
?>
L’une des applications concrètes de ifetelse réside par exemple dans la requête de
mot de passe basée sur un formulaire HTML. En voici un exemple avec nos fichiers
PHP page1.phpetpage2.php.
php
La structure correspond au formulaire déjà créé. Mais cette fois, un seul champ de
saisie suffit : la requête du mot de passe. Comme précédemment, les saisies de
l’utilisateur sont envoyées au script page2.php.
Nous l’adaptons avec le code suivant afin que la saisie du mot de passe soit
comparée à un mot de passe mémorisé :
php
<?php
:
$password = $_POST["password"];
if($password=="qwertz123")
{
echo "The password was correct ";
}
else
{
echo "The password was false";
}
?>
Le code se lit de cette manière : pour commencer, nous attribuons une valeur à la
variable $password de la ligne 2, que nous obtenons à l’aide de la méthode HTTP
POST. Nous définissons ensuite la structure de contrôle suivante : à la ligne 3,
l’élément if doit vérifier si la valeur de la variable $password est conforme à la chaîne
qwertz123. Si c’est le cas, nous obtenons la chaîne de caractères The password was
correct. Si if donne le résultat FALSE, else intervient à la ligne 7 et affiche la chaîne de
caractères The password was false.
Testez par vous-même ce qui se passe si vous tapez un mot de passe différent de
celui mémorisé dans le champ de saisie.
Connexion Connexion
forte faible Description
Pour lier les conditions, PHP confère aux opérateurs logiques des connexions
fortes et faibles. Si vous n’utilisez qu’une seule des deux orthographes, vous ne
remarquerez aucune différence dans la pratique. Si vous combinez les deux
orthographes, vous constaterez que OR et || connectent plus étroitement que AND
et OR. De plus, AND et && sont plus étroitement connectés que OR et ||. Cet ordre
est comparable à la séquence de classement des opérateurs qui s’applique aux
opérateurs mathématiques (la multiplication est prioritaire sur les additions et
soustractions : *permet une connexion plus forte que+).
php
php
<?php
$username = $_POST["username"];
$password = $_POST["password"];
if($username=="John Doe" AND $password=="qwertz123")
{
echo "Welcome to the internal area" . $username . "!";
}
else
{
echo "Access denied";
}
?>
Ce n’est que lorsque les deux conditions sont remplies que le script confirme que le mot de
passe tapé est correct.
Les opérateurs logiques peuvent être combinés à loisir. La règle suivante s’applique
alors : l’opérateur AND est prioritaire par rapport à OR. De même que pour les
équations mathématiques, vous pouvez également utiliser les parenthèses en PHP
pour influencer cet ordre de priorité.
La boucle while
La boucle do-while
:
La boucle for
La boucle while
Il s’agit du type de boucle le plus simple proposé par PHP. La construction de base
correspond au schéma suivant :
php
while (Condition)
{
Étapes de la boucle et autres instructions
}
La boucle while ordonne à PHP d’exécuter les instructions secondaires tant que la
condition while est remplie. L’interprète PHP vérifie donc la condition au début de
chaque passage de boucle. L’exécution du code secondaire ne s’interrompt que
lorsque la condition while n’est plus remplie. Ce principe peut être illustré par un
simple script de calcul :
<?php
$number = 1;
while ($number <= 10) {
echo $number++ . "<br />";
}
?>
Dans la section « Calculer avec des variables », nous avons introduit le principe de
l’incrément. Dans le script suivant, nous l’utilisons à nouveau, mais cette fois-ci avec
un opérateur post-incrément pour augmenter de 1 la valeur de la variable entière
$number à chaque passage de boucle après la publication de texte via echo. Comme
condition pour la boucle while, nous définissons : $number supérieur ou égal à 10.
L’instruction echo est donc répétée jusqu’à ce que $number ait atteint une valeur
supérieure à 10.
:
Le script incrémente la variable *$number* jusqu’à ce qu’elle atteigne une valeur supérieure
à 10.
Le résultat de l’exécution du script est une chaîne qui renvoie la valeur de la variable
$number pour chaque passage de boucle avant qu’elle ne soit incrémentée. Le script
compte donc de 1 à 10 et met fin à l’exécution du code dès que la condition while
n’est plus remplie.
La boucle do-while
La structure de la boucle do-while est similaire à celle de la boucle while. La seule
différence est que la condition n’est pas vérifiée au début de chaque passage de
boucle, mais uniquement à la fin. Le schéma de base d’une boucle do-while
correspond à l’exemple suivant :
php
do {
Étapes de la boucle et autres instructions
}
while (Condition)
<?php
$number = 1;
do {
echo $number++ . "<br />";
}
while ($number <= 10);
?>
La boucle for
Dans l’ensemble, une boucle for au sein d’un script PHP présente les mêmes
fonctionnalités qu’une boucle while. Cependant, la valeur de départ, la condition et
l’instruction sont écrites sur une seule ligne au lieu d’être réparties sur trois lignes
ou plus. La structure de base de la boucle for correspond au schéma suivant :
php
Avec une boucle for, l’exemple précédent pourrait donc être rédigé comme suit :
php
<?php
for($number= 1; $number<= 10; $number++) {
echo $number . "<br /> ";
}
?>
:
Tout d’abord, la valeur 1 est définie pour la variable $number. PHP vérifie ensuite si la
condition $number <=1 est remplie. Si c’est le cas, la boucle continue et les
instructions situées sous la boucle sont exécutées (il s’agit ici de l’instruction echo).
Vient ensuite l’exécution de l’étape de boucle. Dans ce cas, peu importe que l’on
choisisse la pré-incrémentation ou la post-incrémentation, car cette instruction est
toujours exécutée avant la publication. Une fois l’étape de boucle terminée, le
passage suivant de la boucle peut débuter.
C’est à vous de décider si vous rédigez vos scripts PHP avec une boucle for ou while.
Un argument plaide toutefois en faveur des boucles for: leur utilisation offre en effet
une meilleure vue d’ensemble des données générales de la boucle. Cela réduit le
risque de rédiger accidentellement une boucle infinie qui s’exécute jusqu’à ce que la
mémoire de l’interprète soit pleine. Ceci peut arriver avec l’exemple précédent si l’on
oublie d’augmenter la valeur de la variable $number.
Cependant, si la boucle doit être exécutée au moins une fois, quelle que soit la
condition, la boucle do-while est celle qui convient le mieux.
php
<?php
for ($number = 1; $number <= 10; $number++) {
if ($number == 5) {
echo "The script stops at 5";
break;
}
echo $number . "<br /> ";
}
:
}
?>
Dans la boucle for, nous avons défini que la valeur de la variable $number doit être
incrémentée de 1 à partir d’une valeur de départ de 1 dans chaque boucle, jusqu’à ce
que la variable atteigne 10. Cette boucle est alors arrêtée plus tôt que prévu avec
l’instruction break dès que $number atteint 5. La structure de langage echo ne
produit donc que les nombres de 1 à 4.
Si nous souhaitons juste sauter le cinquième tour sans pour autant interrompre
l’ensemble de la boucle, nous devons remplacer l’instruction break par continue.
php
<?php
for ($number=1; $number <= 10; $number++) {
if ($number == 5) {
echo "We skip number 5!<br />";
continue;
}
echo $number . "<br /> ";
:
}
?>
À la place du chiffre 5, PHP affiche la ligne de texte We skip number 5! définie sous if.
Il est également possible d’intégrer des données issues de fichiers. Dans l’exemple
suivant, nous expliquons comment lire des fichiers sous forme de chaînes dans un
script PHP et comment stocker les publications de texte de votre script dans des
fichiers.
:
Lire des fichiers
PHP offre diverses fonctionnalités pour lire le contenu d’un fichier, en particulier
file()etfile_get_contents(). Si la fonction file_get_contents() lit tout le contenu d’un
fichier dans une chaîne de caractères, la fonction file() en sauvegarde le contenu sous
forme de tableau. Chaque élément du tableau correspond à une ligne du fichier. Avec
file(), il est donc plus facile de modifier individuellement chaque ligne.
Nous présentons les opérations sur fichier PHP sur le fichier texte example.txt, que
nous stockons dans le dossier htdocs de notre serveur de test. Le fichier contient
quatre lignes de texte à titre d’exemple :
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula
eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient
montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu,
pretium quis, sem.
file_get_contents('example.txt')
Nous pouvons désormais travailler avec la chaîne importée. Par exemple, nous
pouvons l’assigner à une variable et la modifier sous forme de texte dans le
navigateur Web :
php
<?php
$example = file_get_contents('example.txt');
echo $example;
?>
:
Le fichier lu est affiché dans le navigateur.
Dans l’affichage du navigateur, nous constatons que la chaîne de texte s’affiche sans
paragraphes. Les sauts de ligne du fichier d’origine ne sont pas visibles. Ceci
s’explique par le fait que le navigateur Web interprète la sortie de texte du script
comme du code HTML. Les alinéas définis dans les éditeurs de texte sont donc
perdus lors du processus. Si vous souhaitez conserver la structure d’origine, il existe
plusieurs options. Vous pouvez ajouter manuellement un saut de ligne (br) au code
HTML dans le fichier source en utilisant Rechercher et remplacer, paramétrer <pre>
pour définir le contenu du fichier, assigner la propriété CSS white-space: pre-wrap à
la zone ou utiliser la fonction nl2br() pour indiquer à PHP que les sauts de ligne (new
lines) doivent être automatiquement convertis en saut de ligne HTML (breaks). Cette
fonction s’utilise comme suit :
php
<?php
$example = file_get_contents('example.txt');
echo nl2br($example);
?>
Si vous utilisez la structure de langage echo en combinaison avec nl2br(), PHP insère
un saut de ligne HTML avant chaque nouvelle ligne.
:
La fonction nl2br() aide à structurer les données.
Si vous souhaitez éditer individuellement les lignes d’un fichier, utilisez la fonction
file(). Elle permet en effet de lire un fichier, de numéroter toutes les lignes
commençant par 0 et d’enregistrer leur contenu comme éléments d’un tableau.
Appliquée à notre exemple, cette fonction se présente comme suit :
[2] = Cum sociis natoque penatibus et magnis dis parturient montes, nascetur
ridiculus mus.
[3] = Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem
Pour éditer les contenus respectifs avec echo, il vous suffit de spécifier le numéro de
ligne que vous souhaitez modifier. Par exemple, le script suivant affiche seulement la
première ligne du fichier example.txt sur le navigateur :
php
<?php
$example = file("example.txt");
echo $example [0];
:
?>
php
<?php
file_put_contents("test.txt", "This is a test! \r\n");
echo "test.txt was created!";
?>
:
Le script PHP écrit la ligne de texte « This is a test! » dans le fichier test.txt.
S’il y a déjà un fichier du même nom dans le dossier cible, celui-ci sera écrasé. Pour
éviter cette opération, réglez le paramètre FILE_APPEND de la façon suivante :
php
<?php
file_put_contents("test.txt","The test was successul! \r\n", FILE_APPEND);
echo "test.txt was updated!";
?>
Ce que PHP écrit dans le fichier cible n’a pas toujours besoin d’être défini dans le
script. Vous pouvez également transférer du contenu d’un fichier à un autre. Le
script suivant lit le contenu d’example.txt et l’insère dans le fichier test.txt :
php
<?php
$example = file_get_contents("example.txt");
file_put_contents("test.txt", $example, FILE_APPEND);
echo "test.txt was updated!";
?>
:
Le script PHP lit les données du fichier example.txt et les intègre dans le fichier test.txt.
Produits associés
Créer un site Internet
Dans cet article dédié, nous vous présentons comment créer une adresse mail
avec son…
Lire la suite
Lire la suite
:
Quels types de domaines existe-t-il ?
Lire la suite
Lire la suite
Aperçu de 7 types de sites Internet : quel site Web correspond à vos besoins ?
Le choix d’un bon type de site Internet est essentiel à la réussite de tout projet
en…
Lire la suite
Articles similaires
Lire la suite
Lexique Python
Lire la suite
Le PHP est l’un des langages les plus importants sur Internet. De nombreux
systèmes de gestion de contenu comme WordPress, TYPO3 ou Joomla sont
basés sur PHP. Avec la sortie du PHP 8, plusieurs nouvelles fonctionnalités sont
PHP
Lire la suite
Dans le duel qui oppose PHP versus Python, chaque développeur mise
évidemment sur son favori. Les deux langages de programmation sont chacun
acclamés par une vaste communauté de fans et comptent parmi les meilleures
Lire la suite
PHP Tutoriels
Lire la suite
En tant que développeur Web, vous devrez tôt ou tard installer PHP sur votre
appareil, mais comment faire ? Nous avons composé ce guide pas-à-pas afin
de faire de l’installation de ce langage de script très répandu un jeu d’enfant
PHP Tutoriels
Lire la suite
:
Cookies
À propos de IONOS
Newsroom
Centre d'Assistance
Startup Guide
CGV
Clause de confidentialité