Une introduction à PHP Dans cette section, nous voulons illustrer les principes de base de PHP dans une courte introduction. Ce chapitre traite uniquement de création de pages web dynamiques avec PHP, laissant de côté temporairement les autres possibilités de PHP. Voir la section Ce que peut faire PHP pour plus d'informations. Les pages web qui exploitent PHP sont traitées comme des pages HTML standards, et il est possible de les créer, éditer et effacer de la même façon qu'avec des pages HTML classiques.
La première page PHP Ce tutoriel suppose que PHP est déjà installé. Les instructions d'installation sont disponibles sur la page de téléchargement. Créer un fichier appelé hello.php avec le contenu suivant : Notre premier script PHP : <filename>hello.php</filename> ]]> Depuis le terminal, il faut se rendre dans le répertoire contenant ce fichier et démarrer un serveur de développement avec la commande suivante : Il faut utiliser un navigateur pour accéder au fichier en utilisant l'URL du serveur web, se terminant avec la référence au fichier /hello.php. Selon la commande précédente exécutée, l'URL sera http://localhost:8000/hello.php. Si tout est configuré correctement, ce fichier sera analysé par PHP et la sortie "Hello World!" sera affichée dans le navigateur. PHP peut être intégré dans une page web HTML normale. Cela signifie que, dans le document HTML, il est possible d'écrire des instructions PHP, comme démontré dans l'exemple suivant : Test PHP Bonjour le monde

'; ?> ]]>
Cela produira le résultat suivant : Test PHP

Bonjour le monde

]]>
Ce programme est extrêmement simple et PHP n'est pas nécessaire pour créer une page web comme ceci. Elle ne fait qu'afficher Bonjour le monde, grâce à la fonction echo de PHP. Il est à noter que ce fichier n'a pas besoin d'être exécutable ou autre, dans aucun cas. Le serveur sait que ce fichier a besoin d'être interprété par PHP, car l'extension ".php" est utilisée, et le serveur est configuré pour les passer à PHP. Il s'agit d'une page HTML normale qui contient une série de balises spéciales qui permettent de réaliser beaucoup de choses intéressantes. 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 ?>. Il est possible de passer du mode PHP au mode HTML et vice-versa, de cette manière, à volonté. Pour plus d'informations, consulter la section du manuel sur la syntaxe basique de PHP. Une note sur les retours à la ligne Les retours à la ligne ont une signification minime en HTML, cependant, c'est toujours une bonne idée de rendre le HTML aussi joli et proche que possible en y ajoutant des retours à la ligne. Un retour à la ligne suivant immédiatement une balise de fermeture PHP (?>) sera supprimé par PHP. Ceci peut être vraiment très utile lors de l'insertion de plusieurs blocs PHP ou fichiers inclus contenant du PHP qui n'est pas supposé afficher quoi que ce soit. En même temps, ce peut être confus. Il est possible d'ajouter un espace après la balise fermante PHP (?>) pour forcer l'espace et un retour à la ligne à afficher, ou d'ajouter explicitement un retour à la ligne dans le dernier echo/print du bloc PHP. Une note sur les éditeurs de texte Il existe de nombreux éditeurs de texte et environnements de développement (IDE) utilisables pour créer, éditer et gérer des applications PHP. Une liste partielle de ces outils est entretenue à l'adresse PHP Editor's List. Pour recommander un éditeur particulier, il suffit de visiter cette page et de demander au webmestre de l'ajouter. Avoir au minimum un éditeur de texte avec la coloration syntaxique peut être utile. 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. Pour utiliser l'un d'entre eux malgré tout pour tester des scripts, il faut s'assurer de sauver les fichiers au format texte seul (plain text) : sinon, PHP ne sera pas capable de lire et d'exécuter ces scripts. Maintenant que le script PHP précédent fonctionne, c'est le moment de créer le meilleur script PHP ! Un appel à la fonction phpinfo affichera beaucoup d'informations intéressantes sur le système et sa configuration comme les variables pré-définies disponibles, les modules PHP chargés ainsi que la configuration. Prendre le temps de revoir ces informations importantes. Récupération des informations du système depuis PHP ]]>
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 intéresse ici est $_SERVER['HTTP_USER_AGENT']. $_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 superglobale. Se reporter aux pages du manuel traitant des Auto-globales (aussi connues sous le nom de super-globales). Pour afficher cette variable, nous pouvons simplement faire : Afficher le contenu d'une variable (élément de tableau) ]]> Un résultat possible du script pourra alors être : Il y a de nombreux types de variables disponibles en PHP. Dans l'exemple ci-dessus, nous avons affiché un élément d'une variable Tableau (Array). Les tableaux peuvent être très utiles. $_SERVER est juste une variable qui est automatiquement disponible dans le script. Une liste de toutes les variables qui sont rendues disponibles est fournie dans la section Variables réservées ; il est également possible d'en obtenir une liste complète en lisant l'affichage de la fonction phpinfo utilisée dans l'exemple de la section précédente. Il est possible d'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 Firefox, nous pouvons faire cela : Exemple utilisant les <link linkend="language.control-structures">structures de contrôle</link> et les <link linkend="language.functions">fonctions</link> ]]> Le résultat de ce script, avec Firefox, sera : Ici, nous introduisons plusieurs nouveaux concepts. Nous avons une structure if. Les personnes familières avec les syntaxes de base du langage C ne seront pas surprises. Dans le cas contraire, il est recommandé de lire une introduction à PHP et d'assimiler les premiers chapitres, ou bien de consulter le chapitre consacré à la référence du langage. Le second concept que nous avons introduit est la fonction str_contains. str_contains est une fonction intégrée à PHP, qui détermine la présence d'une chaîne donnée dans une autre. Dans notre cas, nous avons recherché la chaîne "Firefox" (appelée needle) dans $_SERVER['HTTP_USER_AGENT'] (appelée haystack). Si la chaîne recherchée est trouvée, la fonction retourne &true;. Sinon, elle retourne &false;. Si elle retourne &true;, la structure if reçoit &true; et le code entre accolades {} est exécuté. Sinon, le code n'est pas exécuté. Il est recommandé d'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. En cas de doute sur l'utilisation de ces fonctions, il est recommandé de lire la page du manuel "comment lire une définition de fonction" ainsi que la section sur les fonctions PHP. Il est maintenant possible de progresser et de montrer comment utiliser le mode PHP, au milieu du code HTML : Passer du mode PHP au mode HTML et vice-versa

str_contains() a retourné true

Vous utilisez Firefox

str_contains() a retourné false

Vous n'utilisez pas Firefox

]]>
Un exemple de résultat obtenu dans ce script est : str_contains() a retourné true

Vous utilisez Firefox

]]>
Au lieu d'utiliser une commande echo pour afficher du texte, il est possible d'utiliser du code HTML pur. Le point important à noter ici est que la logique de programmation est conservée. Seul un des deux blocs HTML sera affiché, suivant le résultat de la fonction str_contains. En d'autres termes, cela dépend si la chaîne Firefox a été trouvée ou non.
Utiliser un formulaire L'un des points forts de PHP est sa capacité à gérer les formulaires. Le concept de base qui est important à comprendre est que tous les champs d'un formulaire seront automatiquement disponibles dans le script PHP d'action. Consulter le chapitre du manuel concernant les variables depuis des sources externes à PHP pour plus d'informations et d'exemples sur la façon d'utiliser les formulaires. Voici un exemple de formulaire HTML : Un simple formulaire HTML ]]> Il n'y a rien de particulier dans ce formulaire. Il est en HTML pur, sans aucune configuration particulière. Lorsque le visiteur remplit le formulaire et clique sur le bouton Valider, le fichier action.php est appelé. Dans ce fichier, il est possible d'écrire le script suivant : Afficher des données issues d'un formulaire . Tu as ans. ]]> Voici le résultat possible, selon les valeurs saisies : Mis à part les parties htmlspecialchars et (int), ce script ne fait que des choses évidentes. htmlspecialchars s'assure que tous les caractères spéciaux HTML sont proprement encodés afin d'éviter des injections de balises HTML et de Javascript dans les pages. Pour l'âge, vu que c'est un entier, il est possible de le convertir en un &integer;. PHP peut également le faire automatiquement en utilisant l'extension filter. Les variables $_POST['nom'] et $_POST['age'] sont automatiquement créées par PHP. Un peu plus tôt dans ce tutoriel, nous avons utilisé la variable $_SERVER, une superglobale. Maintenant, nous avons introduit une autre superglobale $_POST qui contient toutes les données envoyées par la méthode POST. Il est à noter que dans notre formulaire, nous avons choisi la méthode POST. Si nous avions utilisé la méthode GET alors notre formulaire aurait placé ces informations dans la variable $_GET, une autre superglobale. Il est également possible d'utiliser la variable $_REQUEST, pour ne pas se soucier de la méthode utilisée. Elle contient un mélange des données de GET, POST et COOKIE.
Et après ? Avec ces connaissances, il est maintenant possible de comprendre l'essentiel de la documentation PHP, et les différents scripts d'exemples disponibles dans les archives. Différentes présentations des capacités de PHP sont disponibles sur le site des conférences PHP : &url.php.talks;.