Qu'est-ce que PHP ?
Avant toute chose, il faut que vous sachiez ce que veut dire Xhtml
avant de commencer à comprendre le PHP. En effet, le
XHTML (nouvelle version du langage HTML) est la base de construction
des sites web (tous les sites web, utilisant PHP ou non, doivent
envoyer du code HTML aux internautes qui le consultent). En effet, le
navigateur que vous utilisez pour consulter les sites web ne sait
transcrire en document visible que du code (X)HTML.
Consultez la page xhtml.
Si vous ne connaissez pas ce langage, apprendre le PHP ne vous servira
pas à grand chose. Bien que PHP ne se limite pas qu'à l'affichage de
code HTML (il peut aussi générer des images ou agir sans renvoyer de
code à l'internaute) il est aujourd'hui inconcevable de parler de PHP
sans savoir comment les sites web dits "statiques" sont conçus. Un site
web statique est un site qui ne peut avoir son contenu modifié en temps
réel sans intervention du webmaster (le webmaster étant le "gérant" du
site). Le PHP va vous permettre de créer ce qu'on appelle des sites
"dynamiques". Par opposition au HTML, le PHP qui est interprété par le
serveur permet d'effectuer beaucoup plus de choses (affichage de
l'heure du serveur en temps réel pour donner un exemple très simple).
Depuis tout à l'heure je vous parle de serveur.
Qu'est-ce qu'un serveur ? pour faire simple, lorsque vous consultez un
site internet, ce site est stocké sur une machine qui vous l'envoie.
Cette machine est appelée serveur. C'est elle qui
contient le site et qui va permettre, si PHP est installé, d'analyser
le code PHP pour le transcrire en code HTML. Voici un schéma explicatif
simple (à gauche, l'internaute qui consulte le site, à droite le
serveur qui stocke le site) :
Maintenant que vous avez compris les bases de ce qu'on appelle l'architecture client/serveur,
parlons un peu de PHP. De nombreux sites l'utilisent pour pouvoir créer
tout ce qui permet de créer de l'interactivité avec le visiteur, comme
par exemple des forums, chats, livres d'or, compteurs de visiteurs, etc
...
Différences entre X(HTML) et PHP
Nous avons vu que XHTML ne permet de créer que des pages statiques.
PHP peut se mettre dans du code XHTML pour rendre celui-ci dynamique !
Voyons le code d'une page XHTML basique permettant d'afficher "Bonjour"
et la même page en PHP (la page en PHP devra porter l'extension .php
pour que le serveur puisse savoir que cette page devra être analysée
par PHP avant d'être envoyée, sinon vous aurez le code source PHP qui
s'affichera au visiteur, ce qui pourrait être fâcheux, surtout si vous
placez des mots de passe !
Voici le code basique de notre page en XHTML :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Ici le titre de votre page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" media="screen" type="text/css" />
</head>
<body>
Bonjour !
</body>
</html>
Nous allons maintenant transformer cette page en PHP, nous
utiliserons pour afficher le texte la fonction (qui n'en est pas
réellement une, mais je ne vais pas vous compliquer la tâche) echo(). Cette fonction permet d'afficher du texte, nous verrons comment l'utiliser en détail plus loin dans la section PHP.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Ici le titre de votre page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" media="screen" type="text/css" />
</head>
<body>
<?php echo 'Bonjour !'; ?>
</body>
</html>
On constate que le code PHP se place dans le code HTML (pensez à
donner à votre page une extension .php). A première vue, on ne voit pas
énormément de différences, et on pourrait se demander de l'utilité d'un
tel code. Pour l'instant, l'utilité d'un tel code est nulle. Pourquoi ?
car utiliser PHP pour générer du contenu statique (ici, votre page affichera tout le temps Bonjour !)
est inutile car cela engendre une perte de performances (le serveur
doit d'abord traiter la page en PHP avant de l'envoyer, contrairement à
une page (X)HTML). Mais patience ! PHP ne se limite pas à l'affichage
de texte (et heureusement), d'abord on commence par les bases et on
approfondira ensuite :)
Nous venons de voir un exemple de code PHP intégré dans du code
XHTML, mais le PHP peut très bien être à part dans un fichier, sans
code XHTML autour. Ne jamais oublier que le PHP permet de générer du
texte (ou des images) qui seront envoyés au navigateur. Le code XHTML
généré par PHP via la fonction echo() n'est rien d'autre que du texte.
Si nous prenons par exemple ceci :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Ici le titre de votre page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" media="screen" type="text/css" />
</head>
<body>
<p>Bonjour !</p>
</body>
</html>
On peut générer la même chose en PHP (il y a plusieurs façons de le
faire, on peut aussi très bien mettre tout le contenu XHTML dans la
fonction echo()) :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Ici le titre de votre page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" media="screen" type="text/css" />
</head>
<body>
<?php echo '<p>Bonjour !</p>'; ?>
</body>
</html>
Le visiteur verra absolument la même page XHTML ! Pourquoi utiliser
PHP alors ? parce que grâce à lui, vous pourrez mettre des instructions
beaucoup plus complexes que le serveur exécutera (comme par exemple
lire un fichier et en afficher le contenu, ou encore afficher le nombre
de visiteurs d'une page, etc ...). Vous pourrez également personnaliser
des pages en fonction des visiteurs par exemple (comme je le fais sur
ce site en affichant Bonjour visiteur si vous n'êtes
pas connecté au site et en le remplaçant par votre pseudo si vous êtes
connecté). Tout ceci est impossible en (X)HTML !
Environnement de travail WAMP
Nous avons vu brièvement dans la première partie que PHP s'exécutait
côté serveur. Or, vous avez sûrement envie de pouvoir coder en PHP sur
votre ordinateur et de voir instantanément les résultats des
modifications que vous pourrez apporter à vos scripts PHP !
Les bases de PHP
Les bases de PHP
Après avoir vu comment installer un serveur qui va vous permettre
d'interpréter PHP sur votre ordinateur, nous allons maintenant voir
avec quels outils on peut coder en PHP, et comment on dit à telle page
"il y a du code PHP dedans, interprète-le".
Ce qu'il faut savoir avant tout, c'est que les fichiers PHP ne sont que des fichiers textes. Ils ne sont donc pas compilés (en binaire).
Lorsque vous demandez une page, PHP lit le code et l'interprète au fur
et à mesure. On parle de code interprété. Comme ce sont des fichiers
textes, vous allez pouvoir utiliser n'importe quel éditeur de texte
pour coder en PHP. Personnellement j'utilise le bloc-notes intégré à
Windows, mais il existe des centaines d'éditeurs de ce genre. A vous
d'utiliser celui qui vous convient le mieux :)
Les tags (ou balises) PHP
Lorsque vous enregistrez votre fichier texte avec l'extension .php,
vous pouvez avoir plusieurs codes dedans : du (X)HTML, du javascript,
du CSS ... mais aussi du PHP. Comment l'analyseur syntaxique de PHP
fait-il la différence ? il sait en fait que le code est délimité par
des balises appelées tags. Ces tags sont un peu spéciaux, ils se présentent sous cette forme :
<?php
//code PHP ici
//encore du code ci nécessaire, sur plusieurs lignes
?>
Le code PHP est donc situé entre les tags <?php et ?>.
Avant de vous parler du reste, je fais le point sur l'autre syntaxe
existante et que vous rencontrerez parfois si vous téléchargez
certaines sources mal codées. Il s'agit des tags <? et ?>.
N'utilisez pas ces tags qui pourront ne pas être compatibles avec
toutes les configurations de serveurs existantes. Pour faire simple,
PHP dispose d'un réglage appelé short_open_tags,
celui-ci peut prendre deux valeurs (On ou Off). Si il est sur On, cette
syntaxe sera acceptée et comprise par l'analyseur de code, dans le cas
contraire vos scripts ne pourront être interprétés, tandis que si vous
utiliez tout le temps <?php et ?>, quelle que soit la valeur de cette option, vos scripts fonctionneront parfaitement.
Quand utiliser PHP ?
Vous allez sûrement en apprenant PHP vouloir convertir tout votre
site en PHP et donc remplacer le code (X)HTML par des echo() en rafale.
Ce n'est pas une bonne solution, on ne doit pas utiliser PHP pour
générer du contenu statique. Si votre page n'est pas destinée à changer
dans le temps dynamiquement, laissez-la en HTML. Vous gagnerez en
performances et soulagerez votre serveur. Vous pourrez également
lorsque vous aurez beaucoup de fichiers dans votre répertoire savoir
quels sont ceux qui sont statiques des autres.
Afficher du texte
Opération de base en PHP, l'affichage du texte peut se faire de
différentes façons. Nous allons voir la façon la plus simple et la plus
rapide (au niveau du temps de traitement serveur) d'afficher du texte.
Il s'agit de la "fonction" echo() (il s'agit d'une
structure du langage en réalité et non d'une fonction, en effet il
n'est pas obligatoire de l'utiliser avec des parenthèses).
Voici l'exemple d'affichage de texte utilisant echo :
<?php
echo 'bonjour !'; //affiche le texte "bonjour !"
?>
Tout ça c'est bien beau mais si vous souhaitez afficher une
apostrophe comment fait-on ? Et bien il suffit d'ajouter le caractère
(antislash) devant l'apostrophe à ajouter. Un petit exemple vaut mieux
qu'un long discours :
<?php
echo 'l'apostrophe au milieu d'une chaîne';
?>
Vous auriez pu écrire également ça comme ceci (avec des guillemets doubles) :
<?php
echo "l'apostrophe au milieu d'une chaîne";
?>
Le premier exemple étant plus rapide à traiter par PHP (on reparlera
de la rapidité d'exécution dans la section traitant de l'optimisation
de PHP).
Chaque instruction se termine par un point virgule
en PHP, ne l'oubliez pas car vous obtiendrez des erreurs parfois
insolubles si votre code devient long.
Les commentaires :
Les commentaires sont très utiles pour donner des informations
utiles sur ce que va faire une portion de code. Ils ne seront pas
affichés ni analysés par PHP. Vous pouvez mettre ce que vous voulez
dedans (même du code PHP, (X)HTML, etc...). Il existe deux sortes de
commentaires que nous allons voir maintenant.
- Les commentaires sur une ligne : ils permettent de
commenter sur une seule ligne, on les place généralement à droite ou au
dessus de (ou des) ligne(s) concernée(s) :
<?php
echo 'bonjour !'; //affiche le texte "bonjour !"
?>
Comme vous le constatez, le commentaire qui ne sera pas analysé se situe après les //. Ceci marque le début du commentaire.
- Les commentaires sur plusieurs lignes : ils peuvent occuper une ou plusieurs lignes et sont délimités par les tags /* et */. Voici comment on les utilise :
<?php
/*
Nous allons maintenant afficher du texte
On peut commenter sur plusieurs lignes
et mettre du code <?php echo 'test'; ?>
dans les commentaires
*/
echo 'l'apostrophe au milieu d'une chaîne';
?>