PHP Initiation

Formation PHP

Nous sommes le 30/07/2010, bonne matinée, il est 06:15:54 , 532 visites Récapitulatif | Débogage | Accueil
PHP - Les bases

Introduction PHP

De quoi ai je besoin ?

Les bases de PHP

<?php
phpinfo();
?>
Voir le résultat

Afficher du texte avec echo

<?php
echo "Bonjour";
?>

Les commentaires

<?php
// Commentaire sur 1 ligne
# Commentaire sur une ligne
/*
Commentaires sur plusieurs lignes
*/
?>

Les caractères d'échappement

<?php
$Nom="Jean";
echo " Bonjour, \"<b>$Nom</b>\" , nous te souhaitons une bonne journee <br>\n";
echo " Nous nous réjouissons de vous voir \n";
?>

Les constantes

Pour définir des constantes, on utilise la fonction define()
La plupart du temps, le nom d'une constante est en majuscule.
Ne pas oublier d'entourer de ". ." le nom de la constante, sinon elle s'affichera comme du texte. 
<?php
define('CONSTANTE', 'toto');
// Affichage d'une constante, ne pas mettre de $
echo CONSTANTE;
?>

Exemple

Les variables, initialyser une variable

Variable:

Définition:
C'est une petite information stockée en mémoire temporairement. Ca n'a pas une grande durée de vie.
En PHP, la variable (l'information) existe tant que la page est en cours de génération.
Dès que la page PHP est générée, toutes les variables sont supprimées de la mémoire car elles ne servent plus à rien.
Ce n'est donc pas un fichier qui reste stocké sur le disque dur mais une petite information temporaire.

Ce qu'il faut retenir, c'est qu' une variable est toujours constituée de 2 choses :

L'affectation se fait toujours de la droite vers la gauche

A = B, A va prendre la valeur de B
A = A + B, A va prendre la valeur de A+B

<?php

$a = $a+1 ; // identique à la ligne ci dessous
$a ++ ; // Permet d'incrémenter
$a -- ; // Permet de décrémenter

$a = ($b<100);
$a = true; // Le résultat est égal à true

$a = 10;
$a.= 30; // Permet de concaténer, le résultat serait 1030

// double - Tres gros chiffre
$Prenom="toto"; // string
?>

Exemple

Les types de variables

On peut mettres 3 types d'éléments dans une variable

Texte

<?php
$Prenom="toto"; // Variable string, chaîne de caractères
$Poste="fonctionnaire";
echo $Prenom;
echo $Poste;
?>

Nombres

<?php
$Valeur=123; // Variable integer, c'est un entier
$Valeur1=1000/$Valeur;
$Valeur4=$Valeur+$Valeur1;
@$b = 10/0; // En cas d'erreur, le @ permet de ne pas afficher de message d'erreur
echo @$b;
?>

Boolean

<?php
$Homme=true; // Boolean, TRUE
$Femme=false; // Boolean, TRUE
// Ca sert à exprimer si quelque chose est vrai (true en anglais), ou si c'est FAUX (false en anglais)
echo $Homme;
?>

Les différents types

 is_int ($var )

Détermine le type de variable

$a=$a+$b;
$a+=$b;
$a-=$b;
$a*=$b;
$a/=$b;

$a.=$b;
$a=$a.$b;

$a++;
$b--;

<?php
$variable1="toto";
if(is_string($variable1)){
   echo "La variable est du texte: " .gettype($variable1);
}
elseif(is_integer($variable1)) {
   echo "La variable est un entier: " .gettype(variable1);
}
else{
   echo "La variable est une booléenne";
}
?>
Exercice

Tester le type de variable

gettype($var)

<?php
$Prenom="toto"; // Variable string
$Valeur=123; // Variable integer
// Affiche le type de la variable
echo gettype($Prenom);
echo "<br />";
echo gettype($Valeur);
?>

Exercice gettype()

Faire un calcul avec PHP

<?php
$a=1+5;
$b=10-$a;
$c=10*3;
$d=$b/5;
echo $a;
?>

Les opérateurs de calcul en PHP

Opérateur Signification Exemple
+ Addition $a=10+5
- Soustraction $b=10-$a
* Multiplication $c=10*3
/ Division $d=$b/5
++ Ajoute 1 $i ++ (n'est rien d'autre que l'abbréviation de $i=$i+1)
-- Soustrait 1 $i -- (equivalentà $i=$i-1)
<?php
$quantite=15;
$prixht=12;
$tva=1.196;
$totalht=$quantite*$prixht;
$totalttc=$totalht*$tva;
$montantva=$totalttc-$totalht;
echo "Le montant HT est de $totalht <br />";
echo "Le montant TTC est de $totalttc <br />";
echo "Le montant de TVA est de $montantva";
?>

Arrondir un résultat

round($var,nb_decimales)

<?php
echo "Le montant de TVA est de " .round($montantva,1);
?>

Exercices calculs PHP

Mettre en forme du PHP avec HTML

Insérer des balises HTML dans PHP

<?php
echo "<strong>Bonjour toto</strong>";
?>

Concaténation

Concaténer des chaines de caractères et des variables
En PHP, on utilise le . pour concaténer

<?php
$tauxeuro=6.5957;
echo "le taux de l'euro arrondi est round($tauxeuro,2)"; // Sans concaténation
echo "<br />";
echo "le taux de l'euro arrondi est " .round($tauxeuro,2); // Avec concaténation
?>

Exemple

<?php
$nom = 'Dupont';
$prenom = 'Pierre';

echo $nom.$prenom; //va afficher "DupontPierre"
echo $nom.' '.$prenom; //va afficher "Dupont Pierre"

echo '$nom.$prenom'; //va afficher "$nom.$prenom"
echo '$nom$prenom'; //va afficher $nom$prenom

$nom .= $prenom; //est équivalent à $nom = $nom . $prenom

echo $nom; //affichera "DupontPierre"

$nom = 'Dupont';

$nom .= ' '.$prenom;

echo $nom; //affichera "Dupont Pierre"
?>

Concaténation avec du HTML

<?php
$tauxeuro=6.5957;
echo "<strong>le taux de l'euro arrondi est</strong> " .round($tauxeuro,2);
?>

Exercices

Tester si une variable existe avec isset

isset($variable)

La fonction isse t() verifie si une variable est bien définie,
ce n'est que dans ce cas qu'elle renvoie la valeur vrai (true)
Dans le cas inverse, le résultat du test est false

<?php
$var="toto";
$var1=1;
if(isset($var) && isset($var1)){
    echo "La premiere variable est bien définie, elle est de type " .gettype($var) ."<br />";
    echo "La seconde variable est bien définie, elle est de type " .gettype($var1);
}
else{
    echo "Erreur, la variable n'est pas définie";
}
?>

Exercices isset()

empty($variable)

Permet de tester si une variable existe ou a la valeur 0 et renvoie "true" ou "false", beaucoup moins utilisé que isset()

<?php
$var="toto";
if(empty($var)){
    echo "Erreur, la variable a été testée avec empty() et n'est pas définie";
}
else{
   echo "La variable est bien définie, elle est de type " .gettype($var);
}
?>

Exercice empty()

Fonctions PHP

date()

Caractère Signification Exemples de valeurs possibles :
Jour
j Jour du mois sur deux chiffres sans les zéros initiaux 1 à 31
d Jour du mois sur deux chiffres avec un zéro initial en fonction du jour 01 à 31
l (L minuscule) Jour de la semaine en anglais Sunday à Saturday
w Jour de la semaine au format numérique 0 (dimanche) à 6 (samedi)
z Jour de l'année 0 à 366
Semaine
W Numéro de semaine dans l'année (les semaines commencent le lundi) Exemple : 42 (la 42ème semaine de l'année)
Mois
F Mois, textuel, version longue; en anglais, comme January ou December January à December
m Mois au format numérique, avec zéros initiaux 01 à 12
n Mois sans les zéros initiaux 1 à 12
t Nombre de jours dans le mois 28 à 31
Année
L Est ce que l'année est bissextile 1 si bissextile, 0 sinon.
Y Année sur 4 chiffres Exemples : 1999 et 2003
y Année sur 2 chiffres Exemples : 99 et 03
Heure
a Ante méridien et Post méridien (minuscules) am ou pm
A Ante méridien et Post méridien (majuscules) AM ou PM
g Heure (format 12h) sans les zéros initiaux 1 à 12
G Heure (format 24h) sans les zéros initiaux 0 à 23
h Heure (format 12h) avec les zéros initiaux 01 à 12
H Heure (format 24h) avec les zéros initiaux 00 à 23
s Secondes avec zéros initiaux 00 à 59
i Minutes avec zéros initiaux 00 à 59
I (i majuscule) l'heure d'été est activée ou pas 1 si oui, 0 sinon.  
<?php
echo date("d/m/Y"); // Affiche la date du jour
echo "Il est " . date("H:i:s") ; // Affiche l'heure
?>

Exercices date()

Le timestamp PHP

Un timestamp, c'est un nombre.
C'est le nombre de secondes écoulées depuis le 1er Janvier 1970 à Minuit.

Pourquoi depuis le 1er Janvier 1970 à Minuit ? C'est symbolique, il fallait bien prendre un point de départ.
En fait, ça représente le début de l'époque où le système d'exploitation Unix a été créé.

Le 1er Janvier 1970 à Minuit, le timestamp avait pour valeur 0. Aujourd'hui, beaucoup beaucoup de secondes se sont écoulées

Pour afficher le timestamp de la seconde actuelle, on utilise la fonction

time()

<?php
     echo time(); //Affiche le nombre de secondes écoulées depuis le 1er janvier 1970
?>

Le timestamp avec la fonction date

Il est possible de fournir un second paramètre à date (après les lettres) : le timestamp sur lequel vous voulez obtenir des informations.

Par défaut, date utilise le timestamp actuel : elle renvoie donc l'heure actuelle, le jour actuel etc...
Mais si vous lui donnez un timestamp, elle fera des calculs sur ce moment-là.

Allez, pour faire un test grandeur nature, je vous donne le timestamp qu'il était au moment où j'ai écrit ces lignes

<?php
$timestamp1=1261774471; // Timestamp affiché quand j'ai écris ce cours
echo date('d/m/Y',$timestamp1);
?>

Exemple
Lorsque vous écrirez une news, il vous suffira d'enregistrer juste le timestamp, et vous serez capables grâce à ce nombre de ressortir toutes les infos possibles et imaginables dessus : le jour où la news a été postée, l'heure qu'il était etc... C'est donc très très puissant !

Récupérer le timestamp à partir d'une date

Enfin, une dernière chose qu'il peut être très utile de savoir faire : vous aimeriez connaître le timestamp qu'il était le 5 Février 1998 à 13h 45min 26s.

Pour récupérer le timestamp correspondant, on va utiliser la fonction mktime. On va lui donner en paramètre une date, et elle va nous ressortir le timestamp correspondant.

Cette fonction peut prendre pas mal de paramètres, en voici la liste dans l'ordre :

$timestamp = mktime(heure, minutes, secondes, mois, jour, an, heure d'hiver);
Dans la pratique, vous pouvez oublier le dernier paramètre (heure d'hiver) qui ne vous sera pas utile en général.
Sachez qu'il faut mettre 1 si l'heure d'hiver est activée, 0 si elle ne l'est pas.
Mais passons. Si on enlève l'heure d'hiver pour éviter de s'embrouiller, il reste 6 paramètres possibles qu'on retiendra :

mktime(heure, minutes, secondes, mois, jour, an)

Exemple
Je veux toujours le timestamp du 5 Février 1998 à 13h 45min 26s
<?php
$vieux_timestamp = mktime(13, 45, 26, 2, 5, 1998);
echo 'Le timestamp du 05/02/1998 à 13h 45min 26s était : ' . $vieux_timestamp;
?>

Créer une fonction avec PHP

PHP permet de créer ses fonctions personnelles

function Nomfonction ($parametre, ...)
{
   // Les commandes sont placées ici
   return $resultat
    // Si la fonction retrourne une valeur, indiquez là dans la commande return
}
echo Nomfonction(valeur);
<?php
function ConvDollar($prix) {
$Calcul=$prix*1.341; // Taux de change le 30 Décembre 2009 1.341
return $Calcul;
}
echo ConvDollar(10.51); // 10.54 est la valeur a calculé avec la fonction
?>

Exemple de fonction

Structures conditionnelles

if else

if(condition) {
    instruction;
}
else{
    instruction;
}

// Plusieurs conditions
if(condition1 AND condition2) {
    instruction;
}
elseif {
    instruction;
}
else {
    instruction;
}
<?php
$gender="Homme";
if($gender=="Homme"){
    echo "Bonjour Monsieur";
}
else{
    echo "Bonjour Madame";
}
?>

Opérateurs de comparaison

>  
<  
>=  
<=  
!= Différent
== Egal
<> Différent

Conditions multiples : and or

Mot-clé Signification Symbole équivalent Explication Exemple
AND Et && Vérifie que toutes les conditions sont réalisées ((condition1)&&(condition2))
OR Ou || Vérifie qu'une des conditions est réalisée ((condition1)||(condition2))
xor OU exclusif   Vérifie qu'une et une seule des conditions est réalisée ((condition1)XOR(condition2))
! NON logique   Inverse l'état d'une variable booléenne (retourne la valeur 1 si la variable vaut 0, 0 si elle vaut 1) (!condition)

Exercices if else

switch

switch($variable){
case "Gerard";
   instruction;
   
break;

case
"Jeanne";
   instruction;
   break;

case
"Robby";
   instruction;
   break;

default:
   instruction;
  
 break;
}
<?php
$formation="PAO";
switch($formation){

case "Bureautique":
   $prix=400;
   echo "Le prix est de " .$prix ." &#8364;";
   break;
case "PAO";
   $prix=450;
   echo "Le prix est de " .$prix ." &#8364;";
   break;
case "Web";
   $prix=500;
   echo "Le prix est de " .$prix ." &#8364;";
   break;
default:
   $prix=0;
   echo "le prix est de " .$prix ." Le produit n'est pas en vente";
   break;
}
?>

Exercice switch

Les boucles

for

Cette boucle est très utile lorsque vous souhaitez incrémenter une variable sur une certaine plage de valeurs connue à l'avance

<?php
for ( initialisation; condition de continuité ; expression 3) {
  // Bloc d'instruction 1;
 // Bloc d'instruction 2;
}
?>
<?php
for($d=1;$d<11;$d++){ // Initialise la variable, condition de continuité, expression
echo $d;
}
?>

$i++   Incrémenter
$i--     Décrémenter

Exercice boucle for

while

Cette boucle qui est une des plus utilisées en PHP va vous permettre d'effectuer une ou plusieurs actions tant que la condition que vous placerez à l'intérieur des parenthèses sera vérifiée

Schéma
Voilà ce qui se passe dans une boucle :

  1. Comme d'habitude, les instructions sont d'abord exécutés dans l'ordre, de haut en bas (flèche rouge)
  2. A la fin des instructions, on retourne à la première (flèche verte)
  3. Et on recommence à lire les instructions dans l'ordre (flèche rouge)
  4. Et on retourne à la première (flèche verte)
  5. etc etc...
Le seul hic dans ce schéma, c'est que ça ne s'arrête jamais ! Les instructions seraient réexécutées à l'infini !
C'est pour cela que, quel que soit le type de boucle (While ou For), il faut indiquer une condition.
Tant que la condition est remplie, les instructions sont réexécutées. Dès que la condition n'est plus remplie, on sort de la boucle
<?php
while(condition) {
// Bloc d'instruction
}
?>
<?php
$j=1;
while($j<7){
echo $j++;
}
?>
Il faut TOUJOURS s'assurer que la condition sera au moins remplie une fois.
Si elle ne l'est jamais, alors la boucle s'exécutera à l'infini !
PHP refuse normalement de travailler plus d'une quinzaine de secondes.
Il s'arrêtera tout seul s'il voit que son travail dure trop longtemps et affichera un message d'erreur.
Comment savoir lequel prendre quand je dois choisir entre un While et un For ?
While marche à tous les coups.
For ne marche que quand on a un nombre qui s'incrémente, comme on a fait ici. Donc For est parfois plus adapté, mais personne ne vous tuera si, comme moi, vous préférez utiliser un While tout le temps

Exercices boucle while

do while

Elle a des similitudes avec la boucle while.
Néanmoins, une différence de taille les séparent.
Reprenons notre exemple précédent avec la boucle while :

<?php
     $i = 0; //on définit la variable $i qui sera notre nombre que l'on incrémentera. Ici $i va commencer à 0
     while($i < 7)
     {
           echo $i.'<br />';

           $i++;
     }
?>

Vous constatez que si on initialise $i à 8, la boucle ne sera jamais exécutée, car dès l'analyse de la condition, 8 < 7 renverra FALSE (8 est bien inférieur à 7 ).

La boucle do-while permet
d'effectuer au moins une fois une opération, et si une condition est vraie, reboucler autant de fois que vous le souhaitez.

<?php
     do
     {
           instruction 1;
           instruction 2;
     }
     while(condition);
?>
<?php
$i=8;
$j=7;
do
{
echo 'la boucle a bouclé une fois, même si la condition n\'a pas été respectée,<br />
la variable $i < n\'est pas inférieur à $j';
}
while ($i < $j);
?>
Exercices boucle do while

Les tableaux, array

Définition:

Il s'agit de variables qui peuvent contenir plusieurs valeurs.
On peut donc imaginer leur représentation sous forme d'un tableau.
Pour différencier les valeurs, pour savoir comment on va dire à PHP "je veux telle valeur de cette variable" il faut bien distinguer les valeurs par des indices.
Voilà comment on peut représenter tout ça :

Indice Valeur
0 Maurice
1 Jean
2 Pierre
3 Paul
4 Gérard

Les tableaux à indices numériques

Gérard
Gérard
Gérard

<?php
// Syntaxe 1
$Prenom=array();

$Prenom[0]='Maurice';
$Prenom[1]='Jean';
$Prenom[2]='Pierre';
$Prenom[3]='Paul';
$Prenom[4]='Gérard';

echo $Prenom[4];
?>

<?php
// Syntaxe equivalente
$Prenoms=array(0=>'Maurice',
1=>'Jean',
2=>'Pierre',
3=>'Paul',
4=>'Gérard');

echo $Prenoms[4];
?>

<?php
/* Dans le cas où vous souhaitez garder le premier indice à zéro (et les suivants incrémentés de 1 à chaque fois) vous pouvez également utiliser la syntaxe suivante */
$Prenoms1=array('Maurice','Jean','Pierre','Paul','Gérard');
echo $Prenoms1[4];
?>

count()

Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet

count($variable)

<?php
echo count($Prenoms1) ." prénoms dans le tableau";
?>

Exemple

Les tableaux associatifs

PHP peut également vous permettre de distinguer les différentes valeurs de vos tableaux par des indices associatifs.
Ils sont constitués de chaînes de caractères.
Prenons cette fois l'exemple d'un article. On va le différencier par plusieurs choses :

Ref: 77 Article: Cable rond Prix: 7
Ref: 77 Article: Cable rond Prix: 7
Voilà comment on pourrait représenter ça avec un tableau associatif :

<?php
$Article=array();

$Article['Numero']=77;
$Article['Nom']="Cable rond";
$Article['Prix']=7;

echo "Ref: ".$Article['Numero'] ." Article: " .$Article['Nom'] ." Prix: " .$Article['Prix'];
?>

<?php
// Autre syntaxe
$Articles=array('Numero' =>77,
'Nom' => "Cable rond",
'Prix' => 7);

echo "Ref: ".$Articles['Numero'] ." Article: " .$Articles['Nom'] ." Prix: " .$Articles['Prix'];
?>

Exemple

Tableau multi dimensionnelle indicé

Si on veut représente le tableau, ça donne ça !:

France Paris 80
Japon Tokyo 90
UK Londres 70
90
<?php
$tab1=array();
$tab1[0][0]="France";
$tab1[0][1]="Paris";
$tab1[0][2]=80;

$tab1[1][0]="Japon";
$tab1[1][1]="Tokyo";
$tab1[1][2]=90;



$tab1[2][0]="UK";
$tab1[2][1]="Londres";
$tab1[2][2]=70;
echo $tab1[1][2];
?>
Avec une boucle
JaponTokyo90

<?php
$tab2=array();
$tab2[0][0]="France";
$tab2[0][1]="Paris";
$tab2[0][2]=80;

$tab2[1][0]="Japon";
$tab2[1][1]="Tokyo";
$tab2[1][2]=90;

$tab2[2][0]="UK";
$tab2[2][1]="Londres";
$tab2[2][2]=70;

for ($m=0;$m<count($tab2);$m++){
echo $tab2[1][$m];
}
?>

Exemple

Boucle foreach

foreach se décline en deux versions

Version 1 avec un tableau indicé

foreach($array as $value)

1
1
2
3
5
8
13

Ainsi, nous parcourons le tableau $array et la valeur de l'élément courant est copié dans $value, qui est ensuite affiché.

<?php
$array = array( 1, 1, 2, 3, 5, 8, 13 );
foreach( $array as $value ) // Pas d'accolades
echo $value . '<br />';
?>

Version 1 avec un tableau associatif

N°1
N°2
N°3
<?php
$array = array( 'premier' => 'N° 1', 'deuxieme' => 'N° 2', 'troisieme' => 'N° 3');
foreach( $array as $value ) // on parcourt $array, la valeur de l'item courant est copiée dans $value
echo $value . '<br />'; // affichage
?>

Contrairement au tableau précédant, les indices des éléments ne sont pas des nombres (0, 1, 2, ...) mais des chaînes de caractères (on appelle un tel tableau un tableau associatif). Ainsi, si je veux accéder au deuxième élément, je dois procéder comme suit: $array['deuxieme'] .
Il est donc impossible ici d'utiliser for, par contre, avec foreach, aucun problème

Version 2

La deuxième version de foreach permet de connaître, en plus de la valeur de l'élément courant, sa clé
Dans ce cas, on parcourt le tableau $array et la clé de l'élément courant est copiée dans $key tandis que sa valeur est copiée dans $value

Exemple 1:

Cet élément a pour clé "premier" et pour valeur "N° 1"
Cet élément a pour clé "deuxieme" et pour valeur "N° 2"
Cet élément a pour clé "troisieme" et pour valeur "N° 3"
<?php
$array = array( 'premier' => 'N° 1', 'deuxieme' => 'N° 2', 'troisieme' => 'N° 3');
foreach( $array as $key => $value )
echo 'Cet élément a pour clé "' . $key . '" et pour valeur "' . $value . '"<br />';
?>

Exemple 2:

$_SERVER[DOCUMENT_ROOT]=/home/conseilw/www
$_SERVER[GATEWAY_INTERFACE]=CGI/1.1
$_SERVER[HTTP_ACCEPT]=text/html,application/xhtml+xml,text/xml;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
$_SERVER[HTTP_ACCEPT_CHARSET]=ISO-8859-1,utf-8;q=0.7,*;q=0.7
$_SERVER[HTTP_ACCEPT_ENCODING]=gzip
$_SERVER[HTTP_ACCEPT_LANGUAGE]=en-us,en;q=0.5
$_SERVER[HTTP_CACHE_CONTROL]=no-cache
$_SERVER[HTTP_CONNECTION]=close
$_SERVER[HTTP_HOST]=www.conseil-webmaster.com
$_SERVER[HTTP_PRAGMA]=no-cache
$_SERVER[HTTP_USER_AGENT]=CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
$_SERVER[HTTP_X_CC_ID]=ccc03-01
$_SERVER[PATH]=/bin:/usr/bin
$_SERVER[QUERY_STRING]=
$_SERVER[REDIRECT_STATUS]=200
$_SERVER[REMOTE_ADDR]=38.107.191.104
$_SERVER[REMOTE_PORT]=32957
$_SERVER[REQUEST_METHOD]=GET
$_SERVER[REQUEST_URI]=/formation/php/01-bases-php.php
$_SERVER[SCRIPT_FILENAME]=/home/conseilw/www/formation/php/01-bases-php.php
$_SERVER[SCRIPT_NAME]=/formation/php/01-bases-php.php
$_SERVER[SERVER_ADDR]=91.121.65.131
$_SERVER[SERVER_ADMIN]=webmaster@conseil-webmaster.com
$_SERVER[SERVER_NAME]=www.conseil-webmaster.com
$_SERVER[SERVER_PORT]=80
$_SERVER[SERVER_PROTOCOL]=HTTP/1.1
$_SERVER[SERVER_SIGNATURE]=
Apache/2.0.59 (Unix) mod_ssl/2.0.59 OpenSSL/0.9.8g Server at www.conseil-webmaster.com Port 80

$_SERVER[SERVER_SOFTWARE]=Apache/2.0.59 (Unix) mod_ssl/2.0.59 OpenSSL/0.9.8g
$_SERVER[PHP_SELF]=/formation/php/01-bases-php.php
$_SERVER[REQUEST_TIME]=1280463354
$_SERVER[argv]=Array
$_SERVER[argc]=0
<?php
foreach($_SERVER as $key => $value )
echo '$_SERVER[' .$key .']=' .$value .'<br />';
?>

Vous remarquerez que l'on ne met pas les [ ] de $_SERVER!
Il vous permettra un jour d'afficher le contenu de $_POST, $_GET ou encore $_SESSION, ce qui peut parfois s'avérer très utile pour déceler un bug ou une valeur incorrecte dans un script.

Imbriquer des boucles foreach

On peut aussi imbriquer des boucles foreach, regardez on peut ainsi afficher le contenu d'un tableau à deux dimensions

Le premier foreach parcourt le tableau principal, les valeurs de $key sont successivement 'fruits', 'animaux' et 'pays' tandis que $value contient le tableau qui contient les exemples, c'est donc $value que l'on prend comme tableau pour le deuxième foreach

Exemple 4:

fruits:
pommes
tomates
abricots

animaux:
chats
chiens

pays:
Suisse
France
Angleterre

<?php
$array = array( 'fruits' => array( 'pommes', 'tomates', 'abricots' ),
'animaux' => array( 'chats', 'chiens' ),
'pays' => array( 'Suisse', 'France', 'Angleterre' ) );
foreach( $array as $key => $value )
{
echo $key . ': <br />';

foreach( $value as $valeur )
echo ' ' . $valeur . '<br />';

echo '<br />';
}
?>

Exercice 1, boucle foreach

Exercice 2, boucle for et foreach

include() et require()

include()

include('file.inc.php')

Permet d'inclure un fichier dans une page

require()

require('file.inc.php')

Permet de même d'unclure un fichier dans une page

La structure du langage require() fonctionne de la même façon qu'include.
Cependant, il existe une différence entre ces deux méthodes.
Lorsque vous tentez d'inclure un fichier, si le fichier n'existe pas que se passe t-il ?
Par défaut, PHP affichera une erreur mais continuera l'exécution du script.
require permet à la différence d'include de couper l'exécution du script PHP si le fichier à inclure n'a pu être inclus.
Exemple

Envoyer des variables avec la méthode POST ou GET

Envoyer des données via une url avec GET

Il faut ajouter un point d'interrogation (?), le nom de la variable, un égal, puis sa valeur
?Nom_variable=valeur

get/reception.php?Prenom=titi

Cela va créer une variable un peu particulière : $_GET['Prenom'] qui aura pour valeur titi

Pour envoyer plusieurs variables

Et si vous voulez créer d'autres variables, il vous suffit de les séparer par des &.
Attention, dans votre code HTML, il ne faut pas écrire directement le symbole & (c'est interdit, même si ça "a l'air" de marcher).
Il faut remplacer les & par le code HTML correspondant, à savoir &amp;

get/reception1.php?Prenom=titi&Nom=toto

<a href="get/reception.php?Prenom=titi&amp;Nom=toto" target="_blank">get/reception.php?Prenom=titi&amp;Nom=toto</a>

Exercice:
Envoyer une variable prénom et nom avec GET via une url

Création de formulaire HTML

Envoyer des données via un formulaire avec POST

La variable à récupérer s'écrira de cette façon

$_POST['Nom']

Envoyer des données sur 2 pages

Exercice 1:
Envoyer une variable nom et prénom avec POST via un formulaire

Envoyer des données sur la même page

Exercice 2:
Envoyer les variable Nom et Prenom sur une même page

Exercice 3

Calculer le prix pour une location

Exercice 4

Nous sommes le 30/07/2010 LC Formateur