Introduction à PHP
Qu’est-ce que PHP ?
PHP est un langage de script qui s’exécute côté serveur, le code PHP étant inclus dans une page HTML classique. Il peut donc être comparé à d’autres langages de script qui fonctionnent sur le même principe : ASP (Active Server Pages), JSP (Java Server Pages) ou PL/SQL Server Pages (PSP).
À la différence d’un langage comme le JavaScript, où le code est exécuté côté client (dans le navigateur), le code PHP est exécuté côté serveur. Le résultat de cette exécution est intégré dans la page HTML qui est envoyée au navigateur. Ce dernier n’a aucune connaissance de l’existence du traitement qui s’est déroulé sur le serveur.
Cette technique permet de réaliser des pages web dynamiques dont le contenu peut être complètement ou partiellement généré au moment de l’appel de la page, grâce à des informations récupérées dans un formulaire ou extraites d’une base de données.
Exemple simple de page PHP
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<meta charset="utf-8" />
<title>Exemple de page PHP</title> ...
Structure de base d’une page PHP
1. Les balises PHP
Comme nous l’avons vu précédemment, le code PHP est inclus dans une page HTML à l’intérieur de balises (aussi appelées tags).
PHP accepte deux syntaxes pour les balises :
-
<?php ... ?>
-
<? ... ?>
La première syntaxe est la syntaxe habituelle, recommandée.
La deuxième syntaxe n’est envisageable que si elle a été autorisée dans le fichier de configuration de PHP (php.ini) en mettant la directive short_open_tag à on. Il est déconseillé d’utiliser cette syntaxe si votre code doit être déployé sur un serveur dont vous ne maîtrisez pas la configuration et qui ne supporterait pas cette syntaxe.
Si le script ne contient que du code PHP, la balise de fermeture peut être omise.
2. La fonction echo
La fonction echo est la fonction de base de toute page PHP. Elle permet d’afficher une ou plusieurs chaînes et donc d’inclure du texte dans la page HTML envoyée au navigateur.
Syntaxe
echo(chaîne texte)
echo chaîne texte[,...]
texte : texte à afficher.
La première syntaxe n’accepte qu’un paramètre alors que la deuxième en accepte plusieurs.
Exemple
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
<head>
<meta charset="utf-8" />
<title>Exemple de page PHP</title>
</head>
<body>
<p>
<?php
echo('Bonjour Olivier !');
?>
<br />
<?php
echo 'Bonjour ','Valérie ','!';
?>
</p>
</body>
</html>
Résultat
Bonjour Olivier !
Bonjour Valérie !
Il n’y a pas de saut de ligne automatique dans le résultat de l’exécution du code PHP. En cas de besoin, il est donc nécessaire d’insérer la balise HTML <br /> qui provoque un saut de ligne dans la page HTML finale (voir l’exemple ci-dessus).
Le texte passé en paramètre à la fonction...
Configuration de PHP
1. Le fichier de configuration php.ini
Tout au long de cet ouvrage, nous rencontrerons plusieurs directives de configuration utilisables pour modifier le comportement de PHP.
Ces directives de configuration sont saisies dans le fichier de configuration de PHP (php.ini).
PHP fournit deux exemples de fichiers php.ini : php.ini-development et php.ini-production.
Le fichier php.ini-development est un exemple de fichier de configuration, plutôt destiné à être utilisé dans un environnement de développement. À l’inverse, le fichier php.ini-production est plutôt destiné à être employé dans un environnement d’exploitation ; il contient des réglages qui rendent PHP plus sécurisé et/ou performant.
Ces deux fichiers présentent beaucoup de commentaires qui expliquent le rôle de chaque directive et donnent des conseils sur leur usage.
Pour utiliser un de ces fichiers, copiez-le à l’emplacement approprié sur votre plate-forme et renommez-le en php.ini. Le fichier php.ini est notamment recherché dans les endroits suivants (dans cet ordre) :
-
un endroit spécifique au serveur web (par exemple, la directive PHPIniDir d’Apache 2).
-
un endroit défini par la variable d’environnement PHPRC.
-
le dossier /usr/local/lib ou /etc sous Linux/Unix et c:\windows ou c:\winnt sous Windows.
Avec Apache...
Utiliser PHP en ligne de commande
PHP peut être utilisé en ligne de commande. Ce mode de fonctionnement ne nécessite pas de serveur web et convient par exemple au développement des scripts d’administration.
Syntaxe simplifiée
php [options] [script]
Avec :
options |
Options de la ligne de commande (par exemple, -h pour obtenir l’aide, -v pour la version, etc.). |
script |
Fichier contenant le code PHP à exécuter. |
Exemple
# php -v
PHP 8.2.3 (cli) (built: Feb 28 2023 17:22:24) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.3, Copyright (c) Zend Technologies
# php script.php Olivier
Bonjour Olivier !
Contenu du script script.php :
<?php
// afficher un simple message
// en utilisant le paramètre
// passé sur la ligne de commande
echo "Bonjour $argv[1] !\n";
?>
PHP en ligne de commande fournit aussi un petit serveur web utilisable pour le développement. Ce serveur web intégré peut être démarré de la manière suivante :
php -S serveur:port [-t chemin]
serveur |
Nom ou adresse IP du serveur. |
port |
Port d’écoute. |
chemin |
Répertoire racine des documents (répertoire courant par défaut). |
Les bases du langage PHP
1. Constantes
a. Définition
La fonction define ou le mot-clé const permettent de définir une constante.
Une constante est une zone mémoire identifiée par un nom qui contient une valeur lisible mais non modifiable dans le programme.
Syntaxe
booléen define(chaîne nom, mixte valeur[, booléen insensible_casse])
const nom = valeur
nom |
Nom de la constante (cf. section Structure de base d’une page PHP - Règles de nommage dans ce chapitre). |
valeur |
Valeur de la constante. |
insensible_casse |
Indique si le nom de la constante est insensible à la casse (TRUE) ou non (FALSE - valeur par défaut, seule valeur autorisée depuis la version 8). |
La fonction define retourne TRUE en cas de succès et FALSE en cas d’erreur.
Tout type de donnée scalaire (cf. section Les bases du langage PHP - Types de données dans ce chapitre) ou de type tableau (cf. section Les bases du langage PHP - Tableaux dans ce chapitre) peut être utilisé comme type de donnée d’une constante.
Le nom d’une constante ne doit pas commencer par un $ car ce préfixe est réservé au nom des variables (cf. section Les bases du langage PHP - Variables dans ce chapitre). Définir une constante dont le nom commence par un $ ne génère pas d’erreur (define retourne TRUE). Cependant, à l’utilisation, la constante sera vue comme une variable non initialisée.
Avec la fonction define, la valeur de la constante peut être définie à l’aide d’une expression qui utilise des valeurs littérales, des constantes, des variables, des opérateurs ou des appels de fonctions.
Avec le mot-clé const, il est aussi possible de définir la valeur de la constante à l’aide d’une expression, mais qui utilise uniquement des valeurs littérales, des constantes et des opérateurs (pas d’appel de fonction ni de variable).
Depuis la version 8.1, dans les deux syntaxes, la valeur d’une constante peut aussi être un objet instancié avec l’opérateur new (cf. section Classes dans le chapitre Écrire des fonctions et des classes PHP).
Une fois créée, une constante n’est plus modifiable, ni par un nouvel appel à define (retourne FALSE, génère...