Premières pages PHP

Créez un fichier appelé bonjour.php dans votre dossier web avec le contenu suivant :

 

Exemple 2-1. Notre premier script PHP : bonjour.php

<html>
 <head>
  <title>Test PHP</title>
 </head>
 <body>
 <?php echo "Bonjour le monde<p>"; ?>
</body>
</html>

Utilisez votre navigateur pour accéder au fichier via votre serveur web, en ajoutant le nom de fichier "/bonjour.php". Si vous développez localement, votre URL ressemblera à http://localhost/bonjour.php ou encore http://127.0.0.1/bonjour.php mais cela dépend de la configuration de votre serveur web. Bien que cela soit hors du contexte de ce tutoriel, étudiez DocumentRoot et ServerName dans le fichier de configuration de votre serveur web (sous Apache, c'est httpd.conf). Si ceci est configuré correctement, le fichier sera analysé par PHP et le résultat suivant sera affiché :

 
<html>
 <head>
  <title>Test PHP</title>
 </head>
 <body>
 Bonjour le monde<p>
 </body>
</html>

Notez que cela n'est pas un script CGI. Ce fichier n'a nul besoin d'exécutable ou de configuration particulière. C'est vraiment comme un fichier HTML classique, qui comporte des balises spéciales, capables de réaliser des tâches particulières.

Ce programme est extrêmement simple et vous n'avez pas besoin de PHP pour créer une page web comme ceci. Elle ne fait qu'afficher Bonjour le monde, grâce à la fonction echo() de PHP.

Si vous avez essayé cet exemple, et qu'il n'a rien affiché de spécial, ou même qu'un dialogue a surgi pour vous proposer de le télécharger, ou encore vous avez vu le code tel que nous l'avons écrit dans le fichier, alors votre serveur web ne supporte probablement pas le PHP. Demandez à votre administrateur de l'activer pour vous, en utilisant le chapitre Installation. Si vous voulez développer des scripts PHP localement, voyez la section de téléchargements. Vous pouvez développer en PHP, localement, sur tous les systèmes d'exploitation. N'oubliez pas d'installer aussi un serveur web approprié. Si le problème persiste, n'hésitez pas à utiliser l'une des options de support.

Le point important de cet exemple était de montrer le format des balises spéciales PHP. Nous avons utilisé ici <?php pour indiquer le début de la balise PHP. Puis, nous avons introduit les commandes PHP et refermé les balises PHP avec ?>. Vous pouvez passer du mode PHP au mode HTML et vice-versa, de cette manière, et à votre guise.

Une note sur les éditeurs de texte : Il existe de nombreux éditeurs de texte et environnements de développement (IDE) que vous pouvez utiliser pour créer, éditer et gérer vos applications PHP. Une liste partielle de ces outils est entretenue à l'adresse PHP Editor's List. Si vous voulez recommander un éditeur, rendez donc une visite à cette page, et demandez au webmestre d'ajouter votre éditeur.

Une note sur les traitements de texte : Les traitements de texte tels que StarOffice Writer, Microsoft Word et Abiword sont de très mauvais choix pour éditer des scripts PHP.

Si vous voulez utiliser l'un d'entre eux, malgré tout, pour tester vos scripts, vous devez vous assurer que vous sauvez les fichiers au format texte seul (PLAIN TEXT) : sinon, PHP ne sera pas capable de lire et d'exécuter ces scripts.

Une note sur le Notepad de Windows : Si vous écrivez vos scripts PHP avec Windows Notepad, vous devez vous assurer que vos fichiers sont sauvés avec l'extension .php (Notepad ajoute automatiquement une extension .txt à vos fichiers, à moins que vous ne preniez l'une des mesures suivantes :

Lorsque vous sauvez un fichier, et que vous êtes invité à lui donner un nom, placez le nom du fichier entre guillemets (i.e. "hello.php").

Ou bien, vous pouvez cliquer dans le menu 'Documents texte' du dialogue de sauvegarde, et choisir l'option "Tous les fichiers". Vous pourrez alors saisir le nom de votre fichier sans les guillemets.


 

 

Trucs pratiques

Réalisons maintenant quelque chose de plus puissant. Nous allons vérifier le type de navigateur que le visiteur de notre site utilise. Pour cela, nous allons accéder aux informations que le navigateur du visiteur nous envoie, lors de sa requête HTTP. Cette information est stockée dans une variable. Les variables sont faciles à repérer, car elles commencent toutes par un signe dollar. La variable qui nous interesse ici est is $_SERVER["HTTP_USER_AGENT"].

Attention pour les auto-globales de PHP : $_SERVER est une variable spéciale de PHP, qui contient toutes les informations relatives au serveur web. C'est une variable réservée de PHP, et une auto-globale. Reportez-vous aux pages du manuel traitant des Auto-globales (aussi connues sous le nom de super-globales). Ces variables spéciales ont été introduites en PHP 4.1.0. Auparavant, il fallait utiliser les variables $HTTP_*_VARS, comme par exemple $HTTP_SERVER_VARS. Bien qu'obsolètes, ces variables existent toujours.

Pour afficher cette variable, nous pouvons simplement faire :

 

Exemple 2-2. Afficher le contenu d'une variable (élément de tableau)

<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>

Un résultat possible du script pourra alors être :
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Il y a de nombreux types de variables disponibles en PHP. Dans l'exemple ci-dessus, nous avons affiché un élément de Tableau (Array). Les tableaux peuvent être très utiles.

$_SERVER est juste une variable qui est automatiquement disponible dans votre script. Une liste de toutes les variables qui sont rendues disponibles est fournie dans la section Variables réservées. Vous pouvez aussi en obtenir une liste complète en créant un fichier comme ceci :

 

Exemple 2-3. Afficher toutes les variables prédéfinies phpinfo()

<?php phpinfo(); ?>

Lorsque vous chargez cette page dans votre navigateur, vous allez découvrir une page pleine d'informations sur PHP, ainsi qu'une liste des variables qui sont disponibles.

Vous pouvez ajouter plusieurs commandes PHP dans une balise PHP, et créer de petits blocs de code qui réalisent des opérations plus complexes qu'un simple affichage. Par exemple, si nous voulons vérifier que le navigateur est bien de la famille des Internet Explorer, nous pouvons faire cela :

 

Exemple 2-4. Exemple utilisant les structures de contrôle et les fonctions

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
   echo
"Vous utilisez Internet Explorer<br />";
}
?>

Le résultat de ce script, si vous utilisez Internet Explorer, sera :
Vous utilisez Internet Explorer<br />

Ici, nous introduisons plusieurs nouveaux concepts. Nous avons une structure if. Si vous êtes familier avec les syntaxes de base du langage C, cela ne vous surprendra pas. Si vous ne connaissez pas assez le langage C ou un autre langage où la syntaxe est similaire à celle ci-dessus, il vaudrait mieux que vous lisiez une introduction à PHP, et assimiliez les premiers chapitres, ou bien lisez le chapitre consacré à la référence du langage. Vous pouvez trouver une liste de livres PHP à /books.php.

Le second concept que nous avons introduit est la fonction strstr(). strstr() est une fonction intégrée à PHP, qui recherche la présence d'une chaîne dans une autre. Dans notre cas, nous avons recherché la chaîne "MSIE" dans la chaîne $_SERVER["HTTP_USER_AGENT"]. Si cette chaîne est trouvée, la fonction retourne TRUE et sinon, FALSE. Si elle retourne TRUE, la commande if reçoit TRUE et le code entre accolades {} est exécuté. N'hésitez pas à expérimenter d'autres exemples, à l'aide de if, else, et d'autres fonctions comme strtoupper() et strlen(). Chaque page de la documentation contient aussi des exemples.

Nous pouvons aussi progresser et vous montrer comment utiliser le mode PHP, au milieu du code HTML :

 

Exemple 2-5. Passer du mode PHP au mode HTML et vice-versa

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
?>
<h3>strstr a retourné TRUE</h3>
<center><b>Vous utilisez Internet Explorer</b></center>
<?php
} else {
?>
<h3>strstr a retourné FALSE</h3>
<center><b>Vous n'utilisez pas Internet Explorer</b></center>
<?php
}
?>

Un exemple de résultat obtenu dans ce script est :
<h3>strstr a retourné TRUE</h3>
<center><b>Vous utilisez Internet Explorer</b></center>

Au lieu d'utiliser une commande echo(), pour afficher du texte, vous pouvez utiliser du code HTML pur. Le point important a noter ici et que la logique de programmation est conservée. Seul un des deux blocs HTML sera affiché, suivant que le navigateur utilise ou pas Internet Explorer.