coincoins

1- Commencer le PHP

1. Prérequis

a) Installation

  • Les logiciels AMP installés (apache et php contenu dans le pack wampServer ou autre) doivent être lancés (à la main ou automatiquement)
  • Avec WampServer, les fichiers sont stockés dans un répertoire de travail qui se trouve dans C:/wamp/wwww/.
    Sous Linux, il sera soit dans /home/userId/public_html, soit dans /var/www/.
  • L'accès aux fichier se fait à traves le navigateur, à l'adresse "localhost".

b) Connaissances :

La connaissance du langages HTML est obligatoire : le PHP produit du HTML

La connaissances des langages CSS de base, du SQL, de la théorie de l'architecture client/serveur est un plus très utile.

Bonne lecture, bon travail.

2. Background
Programmer, c'est manipuler des données avec des instructions élémentaires.

a) Elémentaire

Le PHP est un langage de programmation qui sert à produire du texte html envoyé au navigateur du client.

C'est super chouette, car on n'a plus besoin de modifier le contenu du code html à la main à chaque modif de la liste de prix, c'est le PHP qui s'en charge pour nous.

Ecrire un programme consiste à manipuler des données élémentaires, des valeurs, avec des instructions élémentaires, on va :

  • transférer des valeurs d'une "boite" dans une autre,
  • faire des calculs,
  • comparer des valeurs entre elles et
  • les lire ou les écrire sur : écran, fichier, base de données.

la liste de ces commandes est stockée dans un (ou plusieurs) fichier(s) de script php (c'est comme ça qu'on dit :).

Ces fichiers .php peuvent aussi bien contenir du HTML que du PHP.

b) Exemple

Non, non, rien de bien sorcier : on ouvre le php au début de la liste des commandes php, on écrit en php et on referme le php comme ceci, dans le fichier test.php :

  • ICI, on est en HTML. Et je coupe le html …
  • <?php
    • echo "J'écris en html avec du <b>php</b>"; // envoi d'un texte html au navigateur
  • ?>
  • Et je remet le html …

Et voilà! Ça fume ?

Bon, c'est juste le début ...Mais plus loin, le php prendra tout son sens, lorsqu'on utilisera des données en provenance d'une base de données pour faire ... un blog, un catalogue, un vrai site, quoi!

Remarquer :
  • <?php et ?> : marquent le début et la fin du code php.
  • Le code PHP peut être mis sur une seule ligne et n'importe où dans le code HTML
  • ; : est obligatoire à la fin de chaque ligne de PHP, sinon ça plante (vous verrez bientôt, c'est l'erreur la plus courante … ;-)
  • " " : les doubles guillemets (les simples aussi), servent à encadrer les chaines de caractères, sinon soucis …
3. Les notions de base
Afficher du texte (HTML), assembler des scripts, les variables, les tableaux : assemblage de variables.

a) Envoi de texte en html

Pour envoyer du texte html au navigateur, nous avons deux instruction php : echo et print, voir l'exemple du paragraphe précédent.

Quelle différence au final ? Aucune ! On utilisera plutôt la première car la seconde ressemble à une commande d'impression. La seconde sera utilisée dans des cas très spécifiques vus ... plus loin.

Note :

Les lignes avant et après le code PHP sont du code HTML pur.
Dans la chaine de caractères envoyée au navigateur par echo, on y met aussi du HTML pur … donc pourquoi pas des balises ?

b) Inclusions : diviser pour mieux reigner

Pour faire du code simple, on peut, on va mettre des bouts de code dans différents fichiers. Par exemple, l'entête des pages, le pied des pages, des formulaires, etc. ...

L'inclusion de ces fichiers externes dans le code est fait avec l'instruction include "fichier_a_inclure.php";.

Le contenu est immédiatement envoyé au navigateur s'il sagit de html ou immédiatement utilisable si c'est du php... C'est comme si on avait écrit dans le fichier où le code est inclus. C'est tout.

c) Les variables et les types

Une variable est une "boîte" dans laquelle on place une valeur.

Une variable possède un nom (de variable, sans blague!) qui est écrit avec le signe $ devant. Vous verrez vite que si vous oubliez le $ vous aurez des messages d'erreur ...

exemple : echo $maVariable;

Une variable est affectée d'une valeur (on met un valeur dans la variable) à l'aide du signe =. L'ancienne valeur est écrasée (et perdue).

Cette valeur peut être de n'importe quel type : un nombre entier, réel, une chaine de caractères, une valeur booléenne (VRAI/FAUX), un tableau, et plein d'autres choses encore.

Voici de petits exemples où on effectue différents calculs avec des variables : Exemples.php

  • <?php // Début du script
    • echo "<h4>Exercices avec les variables :</h4>";
      • $a=5; $b=3; $c=0;
      • $t='Lorem ipsum';
      • echo "a=$a, b=$b, c=$c et t=$t";
    • echo "<ul>";
      • echo "<li><b>Echanger les valeurs de a et b</b> : ";
        • $c=$a; $a=$b; $b=$c; // effectuer l'échange
        • echo "C'est fini : <b>a=$a, b=$b (et c=$c)</b></li>";
      • echo "<li><b>Additionner a+b dans c</b> : ";
        • $c=$a+$b;
        • echo "C'est fini : <b>a=$a, b=$b et c=$c</b></li>";
      • echo "<li><b>Concaténer a et b dans c</b> : "; // concaténer=mettre des chaînes bout à bout
        • $c=$a.$b;
        • echo "C'est fini : <b>a=$a, b=$b et c=$c</b></li>";
      • echo "<li><b>Ajouter le texte 'lorem ipsum' à c ...</b> : ";
        • $c=$c." lorem ipsum";
        • echo "C'est fini : <b>c=$c</b>.</li> "; // noter qu'il faut gérer les espacement soi même
    • echo "<ul>";
  • // FIN du script
  • ?>

Ici, on voit bien que la commande echo est centrale dans le code et sert à envoyer du HTML...

Remarquerez aussi que les chaînes de caractères sont entourées de ' ou ". c'est impératif.
Si on a des " ", on peut alors y écrire des variables, elle seront remplacées par leur valeur. Avec des ' ', ce n'est pas le cas !
D'autre part, les nombres n'ont pas besoin de ça mais la virgule décimale est un . (point) et non une , (virgule) qui sert à séparer des valeurs dans une liste.

Le résultat : Exemples.php

Exercices avec les variables :

a=5, b=3, c= et t=Lorem ipsum
  • Echanger les valeurs de a et b : C'est fini : a=3, b=5 (et c=5)
  • Additionner a+b dans c : C'est fini : a=3, b=5 et c=8
  • Concaténer a et b dans c : C'est fini : a=3, b=5 et c=35
  • Ajouter le texte 'lorem ipsum' à c ... : C'est fini : c=35 lorem ipsum

d) Les tableaux, variables particulières

Un tableau une variable qui contient des cellules. Chaque cellule contient une valeur. Chaque cellule est identifiée par un indice

Voici un tableau tab de 6 éléments
0123456
val0val1val2val3val4val5val6

Il est déclaré sous la forme :

$t=array('val0', 'val1', 'val2', 'val3', 'val4', 'val5', 'val6');

On accède aux éléments du tableau à l'aide de l'indice en le mettant entre [] (crochets) derrière le nom de la variable.
Ainsi : echo $tab[3]; donne : val3

Pour modifier un élément du tableau onaffecte cet élément avec une valeur.
Ainsi : $tab[3]=3*5; echo $tab[3]; donne : 15

e) Variantes de tableaux

Parmi les autres types de variable, on rencontre les tableaux dont les cellules sont identifiées par des noms au lieu de nombres.

Ces tableaux qui sont souvent remplis à partir d'une base de données et l'indice est le nom des colonnes (cf. le schéma relationnel).

On aura par exemple :

$user=array('id'=>1, 'nom'=>'toto', 'age'=>33)

Et :

echo $user['nom'];

affichera 'toto'.

Le résultat d'une requête est une collection de d'enregistrements dont chaque enregistrement peut être récupéré sous forme d'un tableau (et traité alors comme tel : cf. ci-dessus).

Remarque, une chaine de caractère est aussi un tableau de caractères. Donc si $t="Lorem ipsum" alors $t[3]="e"
4. Programmation structurée - intro
Le php est un langage structuré, il est possible d'y utiliser des structures de programmation comme les conditionnelles et les boucles : pour faire un choix issu d'une comparaison ou répéter un traitement plusieurs fois.

1) Les conditionnelles

Les conditionnelles permettent de faire un choix selon des conditions déterminées.

Exemple : si le temps est beau, je met un T-shirt, sinon, je met un pull.

On a bien une condition : "le temps est beau" et des instructions qui sont exécutées selon que la condition est vraie ou non (il n'y a pas d'intermédiaire possible)

Autre Exemple : si (totalHorsTaxe>1000) transport=0 sinon transport=15.

Le code correspondant aux exemples :

  • <?php
  • // Si le temps est beau
    • $temps='beau'; // initialisation
    • if ($temps=='beau') echo "je met un t-shirt";
    • else echo "je met un pull";
  • // Si (totalHorsTaxe>1000)
    • $totalHorsTaxe=0; // initialisation
    • if (totalHorsTaxe>1000) $transport=0;
    • else $transport=15;
  • ?>

il y a plusieurs types et syntaxes des alternatives. Nous n'en verrons que deux essentielles : le if et le switch

2) Les boucles

Les boucles sont faite pour répéter un traitement, un affichage, un calcul plusieurs fois.

Exemple : pour i de 1 à dix, afficher i.
On va compter i de 1 à 10 et afficher la valeur de i à chaque comptage.

On a bien une boucle "i de 1 à 10" et une instruction à exécuter à chaque passage de la boucle : "afficher la valeur de i".

Autre Exemple : TANT_QUE (article=lirePanier)
   totalHorsTaxe=totalHorsTaxe+prix(article)*quantite(article).

Le code correspondant aux exemples :

  • <?php
  • // Pour i de 1 à dix, afficher i
    • For ($i=1;$i<=10;$i++) echo "i=$i<br>";
  • // Pour chaque article du panier des achats, calculer le total HT du panier
    • while ($article=lirePanier())
      • $totalHorsTaxe = $totalHorsTaxe + prix($article)*quantite($article);
  • ?>

Les boucles s'écrivent de 3 façons différentes : switch, switch ou switch.

Nous étudierons ces trois instructions en détail.