adsense haut

lundi 1 avril 2013

Afficher une phrase ou une image

Ouvrez votre éditeur préféré (voir tutorial "Introduction"), et créez un nouveau fichier PHP. Le code PHP est toujours encadré par des balises le signalant. Les balises possibles sont :
  • <?php      ?>
  • <?      ?>
  • <%      %>
  • <script language="php">      </script>
Les plus couramment utilisés sont <?    ?> , que vous trouverez dans beaucoup de scripts, même si elles ne sont pas les plus correctes. L'idéal pour éviter des problèmes futurs est d'utiliser les plus correctes : <?php    ?> . Celles en <%    %> sont à fuir le plus souvent possible, sauf en cas de nécessité de compatibilité avec un éditeur d'asp.
La première chose à savoir c'est qu'une syntaxe se termine TOUJOURS (sauf quelques exceptions que nous verrons bien plus loin) par un point-virgule (voir ci-dessous), si vous l'oubliez vous verrez apparaître une PARSE ERROR (voir tutorial "Ca marche pas ?") lors de l'exécution de votre fichier. 

Code PHP Résultat à l'écran
<?php
echo ' Bonjour le monde ! ' ;
?>
Bonjour le monde !

C'est la construction echo que nous utiliserons pour afficher du texte à l'écran. Ici on voit bien que la phrase n'est pas du tout formatée , voici donc comment l'on peut utiliser les balises HTML dans PHP  :)
Voilà nous avons ajouté la balise font en HTML pour formater le texte. En fait PHP ne fait pas le formatage, il faut utiliser html pour ça. PHP ne génére que du texte, et en général on veut que ce texte soit une source html, mais aussi quelque fois du javascript, de la feuille de style, voir du xml, etc... Bref, tout ce qui est du texte :)
Affichons maintenant une image en plus du texte.

Code PHP Résultat à l'écran
<?php
echo '
<div align="center"><font face="arial" size="2" color="blue"> Bonjour le monde !</font><br /> ';
echo '
<img src="images/globe.gif" border="0" /></div> ';
?>
Bonjour le monde !
[globe.gif]

On utilise simplement une balise image (<img ...>) du html. On voit donc clairement qu'il est indispensable de maîtriser le HTML avant de vouloir coder en PHP.
Différences entre les navigateurs
Il est important de ne pas oublier que Internet Explorer n'est pas le seul navigateur, il existe aussi notamment Mozilla, Opera, Netscape, Galeon, Phoenix, etc... Il est clair que Internet Explorer est le plus permissif de tous, et affichera parfois correctement des pages qui n'appaitront carrément pas sous Netscape (qui est le plus strict).
Vous devrez donc faire particulièrement attention à bien refermer les balises, dans le bon ordre, ainsi que respecter la norme. Il est fortement conseillé que vous testiez vos scripts sous netscape plutôt que sous IE, même si l'idéal est de le faire en même temps sous les deux.

Différences entre les navigateurs
Il est important de ne pas oublier que Internet Explorer n'est pas le seul navigateur, il existe aussi notamment Mozilla, Opera, Netscape, Galeon, Phoenix, etc... Il est clair que Internet Explorer est le plus permissif de tous, et affichera parfois correctement des pages qui n'appaitront carrément pas sous Netscape (qui est le plus strict).
Vous devrez donc faire particulièrement attention à bien refermer les balises, dans le bon ordre, ainsi que respecter la norme. Il est fortement conseillé que vous testiez vos scripts sous netscape plutôt que sous IE, même si l'idéal est de le faire en même temps sous les deux.
Différentes fonctions
Il existe deux fonctions pour l'affichage : echo et print(). La première est en fait une construction du langage php. Elle n'a pas besoin de parenthèses, contrairement à print, et peut prendre plusieurs paramètres, séparés par des ",". echo est donc légérement plus rapide que print, c'est d’ailleurs pour ça que nous la privilégions. 
Voici un exemple des différentes formulations possibles :
  • echo ' le texte ';
  • echo ' le texte ',' le texte ';
  • print (' le texte ');
Chaîne de caractères
Une chaîne de caractères est un ensemble de caractères délimités par des signes. Les signes permettant de délimiter une chaîne de caractère en php sont ' ou " . La différence entre les deux réside dans le fait que PHP examinera ce que contient une chaîne entre ", mais pas une chaîne qui est entre ' qu'il affichera directement. Il est donc préférable d'utiliser les chaînes délimitées par ' qui sont plus rapides. Nous reviendrons dans un autre tutorial sur les fonctions qui peuvent être utilisées sur les chaînes.
Caractères spéciaux
Il existe un problème avec les chaînes de caractères, quand on veut afficher une chaîne contenant un ' et que celle-ci est délimitée par des '. En effet, cela donne une ligne comme : 

Code PHP Donne comme résultat à l'écran
echo ' j'utilise php '; Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in votrefichier.php on line 2

Là forcément PHP croit qu'il faut s'arreter au deuxième ', et ne comprend donc pas la suite, ce qui se traduit par un parse error. La solution, c'est l'antislash (\) qui permet de faire comprendre à PHP qu'il ne faut pas s'arrêter sur ce caractère-là. Ce qui donne : 

Code PHP Donne comme résultat à l'écran
echo ' j\'utilise php '; j'utilise php

Il faut utiliser la même chose avec les " dans des chaînes délimitées par des ". Mais du coup, pour mettre un \ dans une chaîne (ce qui est déjà plus rare), comment faire ? Eh bien c'est simple, il suffit de le faire précéder par un autre \, ce qui donne un \\.
Il existe aussi d'autres caractères spéciaux :
  • \t : tabulation
  • \r : retour chariot
  • \n : nouvelle ligne
Attention, ces caractères spéciaux ne fonctionnent que dans une chaîne délimitée par des ", si vous les utilisez dans des chaînes délimitées par des ' vous verrez apparaître à l’écran \n par exemple ! Voici des exemples de codes utilisant ces caractères spéciaux :
  • echo ' un texte '," \n ";
  • echo " un texte\n ";
Notez bien que ces caractères s'appliquent aux sources html qui sont générées. Et comme vous le savez, un retour à la ligne dans un fichier html ne fait pas d'effet, il faut mettre un <br />. Néanmoins ils peuvent servir à clarifier le code source, ou pour d'autres utilisations que nous verrons plus loin.

Le conseil et liens utiles

Quand vous essaierez de comprendre les exemples du site et que vous voudrez faire un script similaire mais adapté à vos besoins, ne commencez pas à 0. Commencez par essayer l'exemple chez vous en le recopiant tel quel, vérifiez qu'il fonctionne, et ensuite modifiez-le petit bout par petit bout en testant à chaque fois, afin d'arriver à ce que vous souhaitez. C'est valable pour php mais pour n'importe quel autre langage ou problème auquel vous vous attaquez.
Le carnet d'adresse du débutant
Vous voila fin prêt pour commencer à apprendre PHP, bon courage :)

Exemples et contre-exemples

Voyons maintenant des contre-exemples :
  • Je souhaite qu'une pop-up s'ouvre quand la page se charge.
    Ici, PHP n'est pas la solution. Vous devez utiliser un script qui soit exécuté par le navigateur car c'est lui qui gère l'ouverture des pop-up. Le langage JavaScript est fait pour cela.
  • Je souhaite connaître la résolution de l'écran du visiteur afin de faire des statistiques.
    Itou, PHP ne peut pas gérer celà car il s'exécute côté serveur.
  • Je souhaite faire un chat en php.
    En effet il n'est pas impossible de réaliser un script de chat, il en existe d'ailleurs plusieurs. Cependant, les limitations du protocole HTTP font que ce n'est vraiment pas souple et agréable à utiliser. Le mieux reste d'utiliser IRC.
  • Je souhaite avoir mon café prêt tous les matins à 7 heures.
    Désolé, je crois que cela ne va pas être possible :)
En revanche, voici une liste non-exhaustive des cas où php pourra résoudre vos problèmes :
  • Automatiser la gestion de news, d'articles ou autres éléments de votre site qui ont un caractère répétitif.
  • Réaliser des webmails afin de gérer ses mails partout.
  • Mettre à disposition des autres sites automatiquement des informations de son site (via la format RSS par exemple)
  • Gérer des galeries photos, des annuaires de liens, des sondages, des forums, des moteurs de recherche internes a votre site, etc .. PHP est l'idéal dans ces domaines là.
Un petit tour sur des sites comme phpscripts-fr.net, phpapps.org (en sommeil actuellement) ou encore hotscripts.com vous donnera un aperçu de ce qui peut être fait en PHP.

Notions essentielles !

Il est très important de comprendre ce qui suit :
  • Il faut bien distinguer le client et le serveur (imaginez tout bêtement la scène dans un bar). Votre navigateur est le client. C'est lui qui demande la page web que vous avez entrée. Le serveur est l'ordinateur sur l'Internet qui héberge cette page web. PHP s'exécute donc côté serveur. Cependant, quand PHP envoie une requête SQL au serveur MySQL, il est alors client, vous saisissez ? :)
    En voici quelques conséquences :
    • Tout ce qui a trait à la présentation de la page (couleur du texte, etc..) est à faire en HTML et CSS, exécutés côté client. PHP n'a rien à voir avec le design de votre page
    • Tout ce qui touche au comportement du navigateur est du domaine du JavaScript, lui aussi exécuté par le client
    • L'interêt de PHP est de générer du HTML ou du Javascript dynamiquement. Le travail effectué avec PHP sur votre page est totalement invisible pour le visiteur.
  • Le SQL est un langage a part entière de PHP, il ne faut surtout pas confondre les deux. C'est MySQL qui parse (c'est à dire analyse et exécute) votre code SQL, PHP ne fait qu'envoyer une requête au serveur MySQL
  • PHPMyAdmin n'est pas une base de données ! Il s'agit simplement d'un script PHP qui permet d'administrer vos bases de données MySQL

Quel outil pour faire du PHP ?

Pour faire du PHP, il ne vous faut rien d'autre qu'un simple éditeur de texte. Vous en trouverez une liste en tapant sur Google, mais comme je suis gentil, je vais vous en donner 1 qui est certainement le plus utilisé à ce jour et qui est gratuit !
Mais l'outil le plus indispensable est certainement la documentation officielle. Celle-ci est disponible ici. Elle contient la description complète des fonctions, la syntaxe de PHP, comment l'installer ... C'est une mine d'or, prenez le temps d'y jeter un oeil, et en cas de doute c'est ici que vous devez chercher en premier.
Enfin sachez utiliser ces merveilleux outils que sont les moteurs de recherche, et plus particulièrement Google. En cherchant bien vous trouverez facilement des ressources (documentation, tutorial, article, ...) dont vous aurez besoin.
Le but pour vous est de pouvoir être autonome lorsque vous developperez et de savoir se débrouiller seul face à un problème.

Utiliser PHP sur son ordinateur

Pourquoi installer PHP sur son ordinateur ? Pour tester vos script PHP, vous allez être amené à les envoyer sur votre hebergeur, sur Internet. Cependant il devient vite très lourd de sans cesse renvoyer ces fichiers par FTP. C'est pourquoi installer un serveur web sur son ordinateur est utile, et permet de tester ses scripts plus souplement. Concrètement, votre ordinateur sera à la fois client et serveur. Ainsi vous pourrez programmer en PHP sans avoir besoin d'être connecté à Internet, ce qui peut être utile pour les personnes ne disposant pas de connexions illimitées.
Alors que pour tester des pages web html en local, il suffit d'ouvrir le fichier dans un navigateur, il faut un serveur web sur votre PC local pour tester une page PHP. Pour cela, il existe plusieurs utilitaires très pratiques qui installeront Apache, le serveur web le plus utilisé, PHP, MySQL . Leur installation et son utilisation sont très simples et détaillées. Les plus connus sont :

Si vous êtes sous linux, la plupart des distributions (RedHat, Mandrake, etc ...) installent par défaut Apache, PHP et MySQL. Un article sur Lea-linux indique comment installer Apache, PHP et Mysql si cela n'a pas été fait. Il se trouve ici. De plus, une application similaire à EasyPHP existe pour Linux, il s'agit de Linux Easy Installer.

Qu'est-ce que PHP ?

PHP est un langage de programmation qui s'intègre dans vos pages HTML. Il permet entre autres de rendre automatiques des tâches répétitives, notamment grâce à la communication avec une base de données (utilisation la plus courante de PHP). Le but des exercices de phpDébutant est de vous apprendre à maîtriser les bases de ces deux outils (PHP et base de données), afin que vous puissiez élaborer vos propres applications.
Mais, avant de continuer, il est bon d'expliquer comment se déroule une requête HTTP : en clair que se passe-t-il lorsque vous tapez une adresse dans votre navigateur, où interviennent PHP et MySQL (la base de données), et les conséquences que cela implique. 
Voici, en simplifiant, ce qu'il se passe lorsque vous consultez une page html dite statique : 

CLIENT  => Le navigateur envoie l'url => SERVEUR => Le serveur renvoie le html => CLIENT

  • Votre navigateur envoie l'adresse URL (Uniform Ressource Locator) que vous avez tapée
  • Le serveur web est un "ordinateur" présent sur l'Internet et qui héberge la page que vous demandez. Sur ce serveur on trouve Apache, logiciel apte à traiter les requêtes HTTP que vous envoyez lorsque vous demandez une page web. Apache va donc chercher le fichier demandé dans son arborescence et renvoie à votre navigateur la page HTML
  • Votre navigateur interprète les différents langages se trouvant dans ce fichier (HTML, JavaScript, CSS, etc ...) et affiche la page.
 Maintenant, voyons ce qui se passe lorsque votre page HTML contient du code PHP : 


CLIENT   <======> SERVEUR WEB <======> PHP <=======> MYSQL
  • Votre navigateur envoie l'adresse que vous avez tapée
  • Le serveur web cherche dans son arborescence si le fichier existe, et si celui-ci porte une extension reconnue comme une application PHP (.PHP, .PHP3, .PHP4 par exemple). Si c'est le cas, le serveur web transmet ce fichier à PHP.
  • PHP parse le fichier, c'est-à-dire qu'il va analyser et exécuter le code PHP qui se trouve entre les balises <?php et ?>. Si ce code contient des requêtes vers une base de données MySQL, PHP envoie la requête SQL. La base de données renvoie les informations voulues au script qui peut les exploiter (pour les afficher par exemple).
  • PHP continue de parser la page, puis retourne le fichier dépourvu du code PHP au serveur web.
  • Le serveur web renvoie donc un fichier ne contenant plus de PHP, donc seulement du HTML au navigateur qui l'interprète et l'affiche.
Vous remarquez donc que PHP s'exécute côté serveur. Il n'y a plus aucune trace du code PHP lorsque vous regardez le code source de la page dans votre navigateur PHP.
La base de données la plus couramment utilisée avec PHP est sans aucun doute MySQL. A quoi sert une base de données ? Lorsque vous allez produire des informations dans votre script PHP, vous devez les stocker quelque part. Si ce n'est pas le cas, elles seront alors perdues lorsque le serveur renverra la page html au client (votre navigateur). Pour les stocker, il existe deux solutions: la première consiste à les enregistrer dans un fichier texte sur le serveur (quelque part dans l'arborescence de votre hébergement), la seconde à les enregistrer dans une base de données. La sauvegarde dans un fichier texte n'est pas l'idéal, notamment lorsque vous souhaitez chercher, modifier ou supprimer une partie de l'information que vous stockez. Les bases de données ont été conçues dans cette optique-là. Vous verrez dans quelques exercices comment SQL permet de traiter l'information.