INFOS-AREA
  Débuter avec PHP
 

Premier pas pour développer avec PHP

Vous venez d'installer easyPHP ou autre chose afin de pouvoir développer en PHP ? Vous êtes près à débuter avec ce langage de développement ? Alors allons-y !

Structure d'un programme PHP

Pour éditer du code PHP, il existe des éditeurs spécialisés comme Zend Studio, PhpEd, etc. Au cas où vous n'avez aucun de ces éditeurs, un simple bloc note suffit.

Si le code HTML est placé entre une balise ouvrante <html> et une balise fermante < /html>, il en est de même pour le PHP, sauf que la balise de début est: <?php et la balise de fin est ?>.

Ceci permet d'indiquer au serveur qu'il s'agit bien d'un code PHP. Afin de pouvoir comprendre au mieux, voici un premier exemple de ce que pourrait être un programme PHP.

<?php
echo "Notre premier test";
?>

Pour le tester, il faudra enregistrer la page avec l'extension .php, par exemple "premierprogramme.php", dans un dossier "tests" à créer au préalable (en fonction de votre configuration) dans C:Program FilesEasyPHP1-8www . Pour le test de la page, il suffit de démarrer EasyPHP.

Puis allez dans le menu "Localhost", la page d'accueil s'ouvre. Là, si vous avez bien créé votre dossier contenant votre code en PHP dans le répertoire www comme indiqué, vous devriez voir un lien vers votre dossier créé. Cliquez dessus.

Une page web s'ouvre indiquant tous les fichiers qui se trouvent dans le dossier "tests". Vous devriez avoir le fichier " premierprogramme.php", en cliquant sur ce fichier: votre ordinateur génère alors le code PHP puis ouvre la page. Vous avez le résultat de votre code.

Pour faire plus simple, vous pouvez aller directement à cette URL :
http://localhost/tests/premierprogramme.php

Affichage de texte en PHP

L'exemple ci-dessous nous affiche le texte "Notre premier test" à l'écran. Nous devions cela à la fonction echo. Noter bien les guillemets contenant le texte à afficher.

On met toujours le texte entre guillemets, ça permet de repérer ce qu'on veut d'afficher. Deux choix nous est offerts : mettre un guillemet simple ou mettre un guillemet double. Cependant, il faut faire bien attention à ne pas fermer un guillemet double avec un guillemet simple.

La fonction echo peut prendre plusieurs paramètres séparés par des virgules

<?php
echo ' un texte ',' et un autre texte';
?>

Il y aussi une autre fonction pour l'affichage. Il s'agit de la fonction print(). Elle donne le même résultat que celui de la fonction echo sauf qu'elle a besoin de parenthèse.

<?php
print (' un texte ');
?>

Le séparateur d'instructions

Toujours dans le même exemple, nous appelons la partie: echo "Notre premier test"; une instruction. A la fin d'une phrase dans un texte, il y a un point pour terminer la phrase. De même, les instructions en php sont séparées par un point virgule. Ce point virgule indique la fin de chaque instruction.

<?php
echo "instruction 1 et";
echo "instruction 2" ;
?>

Essayez d'enlever le point virgule à la fin et vous verrez qu'il y aura un message d'erreur "Parse Error".

Les caractères spéciaux

Maintenant, parlons d'une chose très spéciale qui mérite une grande attention.

On avait dit qu'il faut entourer de guillemets les chaînes de caractère à afficher. Mais si le texte à afficher contient lui-même des guillemets. Comment la fonction echo peut savoir qu'il ne s'agit pas encore de la fermeture de guillemets ? Evidement, elle sera dans l'embarras si on ne lui indique rien. En effet, une instruction comme celui-ci:

<?php
echo ' Voici l'instruction ';
?>

Donnera à l'écran une erreur : Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in cheminfichier.php on line 2

On peut échapper à ce genre de problème, en mettant tout simplement des antislashs. En voici alors une version corrigée de l'instruction précédente :

<?php
echo ' Voici l'instruction ';
?>

On fait pareil au cas où il y aurait des "" ou des à l'intérieur des textes à afficher.

Ajouter des commentaires dans un script PHP

Il n'est pas obligatoire mais vivement conseillé de mettre des commentaires dans vos codes. Vous pouvez utiliser les commentaires pour expliquer votre code.

Supposons qu'il y très longtemps que vous n'ayez pas touché à vos code. En revenant de vacances, vous décidez de les reprendre. Avec une centaine de lignes de code, il y aura de forte chance que vous galériez un peu si vous ne vous en souvenez pas à quoi servait tel ou tel fonction.

Afin d'éviter la perte de temps dans ces situations là, ça ne vous coûte rien de mettre des commentaires dans vos codes. De plus, si vous travaillez à plusieurs sur un même projet, les autres comprendront plus rapidement votre code en lisant les commentaires.

Puisque c'est comme ça, comment faire du commentaire alors ? Très simple, il y a deux façons :

Pour un commentaire sur une ligne, il suffit d'ajouter deux slash //

<?php
echo ' Voici l'instruction '; //affichage du texte :Voici l'instruction
?>

Et pour ajouter des commentaires sur plusieurs ligne, mettez les entre /* et */

<?php
/* Ceci un programme php pour l'affichage d'un texte.
Et aussi sur les caractères spéciaux.
Désormais je commente mon code.
echo ' Voici l'instruction '; //affichage du texte : Voici l'instruction
?>

Mais attention, il ne faut surtout pas imbriquer les commentaires comme ceci :

/* commentaire /*



Expressions, variables et types en PHP

Ce tutoriel présente les notions d'expressions, de variables et de types dans le langage PHP. Ces notions que l'on retrouve dans de nombreux langages de développement sont assez simples à assimiler et indispensables pour poursuivre votre apprentissage.

Qu'est ce qu'une variable ?

Une variable est un objet ou une information stockée en mémoire temporairement. C'est-à-dire qu'en PHP, la variable existe tant que la page est en cours de génération. Après l'exécution du programme, toutes les variables sont supprimées de la mémoire car elles ne servent plus à rien.

Une variable est caractérisée par son nom. Donc il est mieux de lui donner un nom significatif pour savoir de quoi il s'agit. En revanche, il faut noter que le nom de variable est sensible à la casse (majuscule / minuscule).

Un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés. La déclaration d'une variable se fait par l'écriture du symbole '$' devant la variable à manipuler.

Exemple :

$prix

Le nom de cette variable est prix.

Affectation d'une valeur à une variable en PHP

A une variable, on assigne une valeur. L'instruction d'affectation permet d'affecter une valeur à une variable. Il suffit de mettre un signe égal après la déclaration de la variable et de mettre la valeur associée comme suit.

$prix = 10; //La variable prix a comme valeur 10

Comme toute instruction PHP, il ne faut jamais oublier le signe; (point virgule) à la fin.

Les Types de variables en PHP

Selon la valeur qu'elle va contenir, une variable a un type. Contrairement à de nombreux autres langages, il n'est pas obligatoire en PHP de préciser les types. Toutefois, il existe plusieurs types de variable en PHP dont les booléens, les réels, les entiers, les chaînes de caractères, les tableaux.

Les Booléens

Une variable de type booléen ou boolean a deux valeurs constantes possibles : TRUE ou FALSE. Ces constantes sont insensibles à la casse. Il s'agit donc d'une variable qui ne peut être que true ou false et rien d'autre.

Exemple :

<?php
$jeune = true;
?>

Les Entiers

Un entier ou integer est un nombre appartenant à l'ensemble des entiers Z: Z = {…,-1,0, 1, 2, ...}.

Exemple :

<?php
$age = 10;
?>

Les Réels

Ce sont les nombres décimaux connus aussi sous le vocable de " double ", " float " ou " nombre réels. Un prix peut par exemple être un réel.

Exemple:

<?php
$prix = 2.542;
?>

Les chaînes de caractère

Ce sont les variables de type texte, ou string. Comme l'on avait dit précédemment, il faut les mettre entre guillemet. Les chaînes de caractères sont des séquences de caractères.

Exemple :

<?php
$nom = "Dupont";
?>

Il y a encore d'autres types de variable comme les tableaux, les objets, etc, mais qui ne seront pas abordés dans cette section.

Les Constantes

Il s'agit des variables dont la valeur ne pourra être changée lors de l'exécution d'un programme. On utilise donc le type constante pour les valeurs qui ne seront pas susceptibles de changer au cours de l'exécution du programme. C'est le cas du nombre pi par exemple, ou de la TVA, etc

La fonction utilisée pour la définition d'une constante en PHP est la fonction define() qui nécessite en paramètres le nom de la variable et sa valeur. La syntaxe de la fonction define() est la suivante: define("Nom_de_la_constante", Valeur);

Exemple :

<?php
define("TVA"', 19.6);
echo TVA;
?>

Tout au long de l'exécution la valeur de TVA utilisée sera 19.8. Quand on utilise la constante TVA, on ne met plus de guillemet.

La différence entre les constantes et les variables PHP est qu'elles ne sont pas précédées du signe $. Par convention, on écrit les constantes en majuscule.

Les conditions (if, else, elseif)

Les conditions en PHP

Une structure conditionnelle permet d'exécuter ou non une série d'instructions en fonction d'une condition d'origine. Si le calcul de cette condition retourne TRUE alors le bloc d'instructions concerné est exécuté.

Les expressions évaluées peuvent être plus ou moins complexes, c'est à dire qu'elles peuvent être constituées d'une combinaison d'opérateurs de comparaison, d'opérateurs logiques et même de fonctions. Le langage PHP introduit 4 constructions conditionnelles: if, elseif, else et switch.

Avant de les voir, il est nécessaire que l'on aborde les opérateurs de comparaison et les opérateurs logiques.

Les opérateurs de comparaison

Les opérateurs de comparaison sont utilisés pour comparer deux valeurs. Elles permettent souvent de définir des conditions dans les structures conditionnelles.

Egal : $a == $b retourne true si la valeur de $a est égal à celle de $b

Différent : $a != $b retourne true si la valeur de $a est différente de celle de $b

$a <> $b retourne true aussi si la valeur de $a est différente de celle de $b

Inférieure : $a < $b retourne true aussi si la valeur de $a est strictement inférieure à celle de $b

Inférieure ou égal : $a < = $b retourne true aussi si la valeur de $a est inférieure ou égale à celle de $b

Supérieure : $a > $b retourne true aussi si la valeur de $a est strictement supérieure à celle de $b

Supérieure ou égal : $a >= $b retourne true aussi si la valeur de $a est supérieure ou égale à celle de $b Les opérateurs logiques

En PHP, il y a différents opérateurs logiques qui permettent de combiner des conditions entre eux.

La structure conditionnelle if, else

Cette structure permet de n'exécuter qu'un bloc d'instructions uniquement si l'expression est vraie. Le mot clé if() signifie en anglais 'si'. Autrement dit, si la condition est vérifiée, on exécute l'instruction. Dans le cas contraire, l'instruction sera simplement ignorée ou une autre instruction alternative sera exécutée.

Par conséquent, un if peut être employé seul. Le else étant l'alternative, on peut s'en passer pour n'exécuter un code que si une condition est réalisée.

La syntaxe est :

<?php
if(condition)
{
  // Bloc d'instructions
}
?>

On met le ou les conditions entre parenthèse, et le bloc d'instructions entre deux accolades.

Exemple :

<?php
$vitesse = 100;

if($vitesse > 50)
{
  echo "excès de vitesse !";
}
?>

Else

La clause else (traduite par sinon), ajoutée après l'accolade fermante du bloc if(), permet de définir une série d'instructions qui seront exécutées si l'expression if testée est fausse (c'est à dire si elle renvoie FALSE).

Voici la syntaxe :

<?php
if (condition) {
  // instruction au cas où la condition serait réalisée;
}
else{
  // instruction au cas où la condition ne serait pas réalisée;
}

Exemple :

<?php
$age = 22;

if($age >= 18)
{
  echo "Vous êtes majeur.";
}
else
{
  echo "Vous êtes mineur.";
}
?>

Imbrication elseif

On peut imbriquer les if les uns dans les autres. Simplement lorsqu'un if imbriqué aura fini d'être exécuté, il retournera à l'étape logique suivante du rang hiérarchique supérieur.

Exemple :

<?php
$nombre = -4;

if($nombre == 0)
{
  echo "le nombre est égal à zéro";
}
else
{
  if($nombre > 0) {
     echo "le nombre est positif";
  } else {
     echo "le nombre est négatif";
  }
}
?>

On peut simplifier le code en utilisant elseif. Et le nombre d'elseif est illimité. Sauf que le else à la fin est obligatoire et il est exécuté lorsqu'aucune des conditions en dessus ne sont pas exécutées.

Exemple :

<?php
$nombre = -4;
if($nombre == 0)
{
echo "le nombre est égal à zéro";
}
elseif($nombre > 0)
{
  echo "le nombre est positif";
}
else
{
  echo "le nombre est négatif";
}
?>


Les boucles (while, for, do while)


Les boucles en PHP

Les boucles sont des structures de contrôle permettant d'effectuer un certain nombre de fois les mêmes opérations. Concrètement, il s'agit d'une répétition d'instructions./p>

Par exemple afficher une suite de nombres que l'on incrémentera à chaque tour de boucle en fonction d'une ou plusieurs conditions à vérifier.

Les opérateurs d'incrémentation et de décrémentation

Incrémenter une valeur signifie qu'on augmente la valeur d'un certain ordre. Pour dire que la valeur d'une variable $i a augmenté d'un point, on écrit :

$i = $i+1 ;

Cette instruction peut être écrite d'une manière plus simple en utilisant une instruction équivalente :

$i += 1 ;

ou tout simplement :

$i ++ ;

A l'inverse, décrémenter une valeur veut dire qu'on diminue la valeur de $i d'un certain nombre de points. La syntaxe est la même que celle de l'incrémentation, sauf qu'à la place du signe + (plus) on met un signe – (moins).

Il est possible de faire deux, 2 pas d'augmentation ou de diminution. Autrement dit, il est tout à fait possible de faire : $i += 2; pour dire que la valeur de $i augmentera de deux points.

Boucle while en PHP

C'est le moyen le plus simple pour faire une boucle. On traduit la boucle while par 'tant que'. Tant que la/les conditions est/sont vérifiée/s, on traite les instructions situées dans la boucle. La particularité de cette instruction est que la condition est testée à chaque début de boucle.

Syntaxe de while :

<?php
while(condition)
{
  // instruction 1;
  // instruction 2;
  ...
} ?>

Dans cet exemple, on affichera tous les nombres pairs qui sont inférieurs à 20.

Exemple :

<?php
$i = 0; // $i est un nombre que l'on incrémentera.
while($i < 20)
{
  echo $i . "<br />";
  $i += 2 ;
}
?>

L'essentiel à retenir est que la boucle while() signifie que l'on va répéter un bloc d'instructions tant que la condition passée en paramètre reste vraie (TRUE). Lorsque celle-ci deviendra fausse (FALSE), le programme sortira de la boucle.

Il est donc impératif que le bloc d'instructions, d'une manière ou d'une autre, agisse sur le paramètre. Dans l'exemple précédent, si l'on ne met pas la ligne $i += 2, alors la boucle ne s'arrêtera pas !

Boucle for en PHP

La boucle for() se traduit par 'pour chaque itération'. Il faut connaître par avance la condition d'arrêt. Autrement dit, la valeur qui rendra la condition fausse et stoppera la boucle. Sa syntaxe est simple et prend 3 paramètres obligatoires:

Syntaxe de for

<?php
for(initialisation; condition; incrémentation)
{
  bloc d'instructions;
}
?>

L'initialisation est l'expression qui permet d'initialiser la boucle (valeur de départ). Généralement, les boucles débutent à la valeur 0, mais ca n'est pas une généralité. Le second paramètre correspond à la condition d'arrêt de la boucle.

Cette condition est recalculée à chaque itération (passage de boucle) afin de déterminer si l'on continue de boucler ou bien si l'on sort de la boucle. Enfin, le dernier paramètre détermine l'expression qui sera exécutée à la fin d'une itération. Généralement on prévoit ici une incrémentation (ou décrémentation) pour mettre à jour le compteur de la boucle.

Exemple :

<?php
// Boucle générant la table de multiplication du 8
for($i=0; $i<=10; $i++)
{
  echo "8 x " . $i . " = " . (8*$i) . "<br/>";
}
?>

La boucle do-while en PHP

L'instruction do{ ... } while() traduite par: 'répéter / faire ... tant que' est une alternative à l'instruction while().

Il permet de tester la condition après la première itération et exécution du premier bloc d'instructions. Dans le cas de la boucle while, la condition est examinée avant la boucle tandis que pour la boucle do-while elle est examinée à la fin. Ainsi, même si cette condition n'est pas vérifiée, la boucle s'exécutera au moins une fois.

Syntaxe de do while :

<?php
do
{
  // bloc d'instructions;
}
while(condition); ?>

Exemple :

<?php
// Déclaration et initialisation du compteur
$i = 0;
// Boucle générant la table de multiplication du 8
do
{
  echo "8 x ". $i . " = " . (8*$i) . "<br/>";
  // Incrémentation du compteur
  $i++;
}
while($i <= 10);
?>

Remarques: Il existe deux instructions qui permettent de modifier l'exécution des boucles, il s'agit de break et de continue.

L'instruction break permet de sortir de la boucle courante. C'est-à-dire qu'il interrompe directement l'itération. La condition de boucle est une condition qui est toujours vérifiée et, dans la boucle, on utilise break pour quitter celle-ci une fois que l'on est arrivé à nos fins.

'break' permet aussi de gérer des événements plus exceptionnels, comme des erreurs: en cas d'erreur, on quitte la boucle et on affiche un message.

La seconde instruction est l'instruction continue. Cette instruction permet de sauter les instructions de l'itération courante, afin de passer directement à l'itération suivante.

Reprenons l'exemple sur les nombres pairs. Cette fois-ci, la variable $i sera incrémentée de 1. On utilisera l'instruction continue pour éviter les nombres impairs.

<?php
$i = 0; // $i est un nombre que l'on incrémentera.
while($i < 20)
{
 if (! ($i % 2) )
 {
  continue;
 }
echo $i . "<br />";
$i+=1 ;
}
?>


Syntaxe de l'instruction conditionnelle Switch

Il existe une autre alternative à la structure if() / elseif() / else ou bien aux imbrications de blocs if(). Elle se nomme switch() (traduit par 'au cas où').

Sa syntaxe est assez simple et repose sur l'utilisation de 3 mots clés : switch, case et default.

Cette instruction conditionnelle permet de tester toutes les valeurs possibles que peut prendre une variable.

Exemple d'utilisation de l'instruction switch en PHP

<?php

$legume = "rien";

switch($legume)
{
 case 'salade':
  echo'Vous avez acheté de la salade !';
  break;

 case 'Carotte':
  echo'Vous avez acheté de la Carotte !';
  break;

 case 'poivrons':
  echo'Vous avez acheté des poivrons!';
  break;

 case 'aubergines':
  echo'Vous avez acheté des aubergines!';
  break;

 default :
  echo 'Vous avez acheté un autre légume' ;
  break;
}

?>

Dans cet exemple, $legume est la variable à tester.

Les différents 'case' testent la valeur, et exécutent le code contenu entre le 'case' en question et le 'break'.

L'instruction contenu dans la clause default est l'instruction à exécuter par défaut lorsque la variable $legume ne prend aucune des valeurs définies dans les différents 'case'.

Les fonctions en PHP

Une fonction est un bloc de code PHP destiné généralement à être réutilisé plusieurs fois. Plutôt que d'écrire plusieurs fois le même morceau de code, on met celui-ci dans une fonction, et c'est cette fonction que l'on appellera dès que l'on en aura besoin.

En PHP, il y a déjà des fonctions prédéfinies que l'on peut utiliser immédiatement. Pour autant, rien ne nous empêche d'en créer d'autres selon nos besoins. Et plus encore, on peut se servir des fonctions PHP pour créer nos propres fonctions.

Exemple de fonctions PHP prédéfinies

<?php
// Pour connaître la version de PHP utilisé on écrit :
echo phpversion();
?>

Création d'une fonction en PHP

Définition de la fonction

Lors de la définition d'une fonction, on utilise en premier le mot clé 'function'. Il est obligatoire de le mettre pour dire que le bloc traité par PHP est une fonction. Ensuite, on met le nom de la fonction.

 

Une fonction peut ne pas retourner une valeur. Dans ce cas, on parle généralement de procédure. C'est juste pour structurer le code et pour alléger le code en évitant les répétitions. Exemple de procédure affichant "bonjour le monde !":

<?php
function hello()
 {
  echo "Bonjour tout le monde !";
 }

hello(); //appelle la fonction "hello" qui va afficher "Bonjour tout le monde !" (sans les guillemets)
?>

Pour afficher Bonjour le monde ! n'importe où dans le code, il n'y aura plus qu'à taper cec i:

hello();

Mais la plus grande utilité des fonctions vient du fait qu'elles peuvent retourner une valeur. On peut se servir d'une fonction pour manipuler des variables. Au départ, on leur introduit des valeurs qu'on appelle les arguments de la fonction.

Le bloc de fonction est donc devenu comme une sorte de machine dans laquelle on manipule les paramètres. Après manipulation, la machine (en l'occurrence la fonction) retourne une valeur. Toutes les manipulations se déroulent à l'intérieur du bloc de fonction.

Nous venons de voir l'exemple d'une procédure qui ne contenait aucun paramètre. Une fonction peut avoir un ou plusieurs paramètres. Ces paramètres sont généralement des variables et peuvent être de types différents. Après avoir écrit le nom de la fonction, on énonce tous les paramètres entre les deux parenthèses.

En cas de plusieurs paramètres il faut les séparer par des virgules.

Voici un exemple de fonction simple qui calcule la division de 2 nombres. On met les deux nombres en paramètres. Le nombre retourné par la fonction est donc le résultat de la division des deux nombres. Le mot clé 'return' permet de retourner le résultat.

<?php
function division($nombre1, $nombre2)
{
  $resultat=$nombre1/$nombre2;
  return $resultat;
}
?>

Comment appeler une fonction PHP avec paramètres ?

Pour appeler une fonction, il suffit de l'appeler par son nom et de spécifier les valeurs des paramètres.

Si nous voulons par exemple appeler la fonction division :

<?php
function division($nombre1, $nombre2)
{
  $resultat=$nombre1/$nombre2;
  return $resultat ;
}

$valeur=division(100,50);
echo $valeur;
//ou encore
$numerateur=100;
$denominateur=50;
$quotien= division($numerateur, $denominateur);
echo $quotien;
?>

Remarquez bien qu'il y a un ordre dans la disposition des paramètres dans la définition de la fonction. Si l'on intervertit les paramètres, il y a de fortes chances que l'on n'ait pas le résultat attendu.

Autrement dit, division(100, 50); ne donnera évidemment pas le même résultat que division(50,100);

Valeurs par défaut des paramètres d'une fonction

Nous pouvons également assigner des valeurs par défaut aux paramètres.

Exemple

<?php
function division ($nombre1 = 10, $nombre2 = 2)
{
  $resultat=$nombre1/$nombre2;
  return $resultat ;
}
echo division();
?>

Ici, nous assignons comme valeurs par défaut les nombres 10 et 2. Si nous ne spécifions pas les valeurs des paramètres lors de l'appel de la fonction, nous obtiendrons 5 comme résultat.

Lorsque l'on met des valeurs par défaut, les deux paramètres ne sont pas obligatoires lors de l'appel de la fonction. Dans nos exemples, on a toujours fait l'appel de la fonction juste en bas de la définition de la fonction. Tout se passe donc dans le même fichier.

Mais lorsqu'on a plusieurs fonctions, et qu'on veut utiliser les mêmes fonctions dans différents fichiers, il devient fastidieux de répéter les définitions des fonctions en haut de chaque fichier. PHP nous offre la possibilité de créer une sorte de bibliothèque de fonctions et de les inclure tout simplement au début de chaque fichier.

Manipuler les chaînes de caractère

Avant d'aborder le vif du sujet, faisons d'abords un petit rappel de ce que l'on a déjà su à propos des chaînes de caractères.

Affichage de chaînes de caractère

Comme nous venons de voir dans le chapitre concernant 'la syntaxe de base en PHP', on utilise deux fonctions pour afficher des chaînes: echo et print. Ensuite, nous avons dit qu'il faut mettre ces chaines entre guillemets doubles ou guillemets simples.

Concaténation de chaînes

L'opération de concaténation des chaînes de caractère est le point. Il suffit donc de mettre un point entre deux chaînes pour les concaténer.

Les chaînes de caractère en tant que variable

Comme toute variable, l'affectation d'une variable chaîne se fait par le symbole "=" . Dès qu'on met un ou plusieurs caractères entre guillemet, PHP pense qu'il s'agit d'une chaîne de caractère.

Pour le tester, nous allons utiliser la fonction 'gettype' qui retourne le type de la variable passée en paramètre. Pour info, la fonction settype() permet, à l'inverse, d'affecter un type précis à une variable.

<?php
$nb = 5;
echo gettype($nb);
?>

La valeur affichée à l'écran est integer. C'est à dire que la variable $nb est de type nombre.

Dans ce deuxième exemple, même s'il s'agit toujours du nombre 5, la valeur affichée à l'écran n'est plus integer. Il est du type string ou chaine dès qu'on met le guillemet.

<?php
$nb = "5";
echo gettype($nb);
?>

Longueur d'une chaîne et élagage : Fonction strlen et trim

L'élagage est une opération qui consiste à retirer les blancs avant et après une chaîne de caractère. La fonction strlen nous permet d'avoir la longueur du texte.

En ce qui concerne l'enlèvement des blancs du début et de la fin de la chaine, il suffit d'utiliser la fonction trim. Notre chaîne de départ est de longueur 33 par exemple:

<?php
$chaine = " on étudie le php et etc.... ";
echo strlen($chaine); //renvoie 33
?>

En appliquant un trim pour enlever les espaces, il ne nous reste plus que 27 caractères.

<?php
$chaine = " on étudie le php et etc.... ";
$chaine = trim($chaine);
echo $chaine."<br />";
echo strlen($chaine);//renvoie 27
?>

On peut aussi enlever d'autres caractères que l'espace (comme les points par exemple) en donnant un deuxième paramètre à la fonction trim. On repassant une deuxième fois la fonction trim avec un point comme deuxième argument, nous n'avons plus que 23 caractères.

<?php
$chaine = " on étudie le php et etc.... ";
$chaine = trim($chaine);
$chaine = trim($chaine,".");
echo $chaine.'<br>';
echo strlen($chaine);//renvoie 23
?>

Recherche d'une sous-chaine en PHP : Fonction strpos et strstr

Il y a deux façons de trouver une sous chaîne. La fonction strpos() retourne un nombre qui indique la position de la première occurrence du caractère recherché. Quant-à la fonction strstr(), elle permet elle aussi de trouver la première occurrence d'un caractère. Sa seule différence avec strpos() est qu'elle retourne le reste de la chaîne à partir de la chaîne repérée.

Elles ont 2 deux arguments : la chaine dans laquelle on effectue la recherche et le caractère à rechercher.

<?php
$adresse = "nom@domaine.fr";
$arobase = "@";
echo strpos($adresse,$arobase) . "<br />"; //retourne la position :5
echo strstr($adresse,$arobase) . "<br />"; //retourne la chaine après avec la chaine recherchée: @domaine.fr
?>

Les deux fonctions ont chacune leurs équivalent : Les fonctions stripos et stristr pour l'analyse sans prendre en compte la casse, strrpos qui trouve la position de la dernière occurrence d'un caractère dans une chaîne, etc.

Récupération d'une sous-chaine : Fonction substr

Maintenant, on va voir comment récupérer une partie de la chaine de caractère. On veut par exemple afficher juste les 10 premiers caractères dans un long texte. La fonction substr nous permet de faire cela. Il faut juste lui indiquer la position de départ et le nombre de caractères à enlever.

Dans notre exemple ci-dessous, la valeur 0 indique que la position départ est le début du texte:

<?php
$chaine = "Dans ce texte, essayons d'afficher juste les 10 premiers caractères. On coupe donc le texte.";
echo substr($chaine, 0, 10); // affiche " Dans ce te "
?>

Remplacer un motif dans une chaîne : str_replace

Dans les emails que l'on envoie (un mail de confirmation par exemple), on remarque que le contenu est le même avec juste le prénom de la personne qui change. Essayons de faire quelque chose de ce genre avec la fonction str_replace. Comme son nom l'indique, la fonction str_replace permet de chercher une sous chaine et de la remplacer.

La syntaxe de cette fonction en PHP est la suivante :

<?php
str_replace($cherche, $remplace,$texte),
?>

$cherche est la valeur à rechercher, $remplace est la valeur avec laquelle on la remplace et $texte est le texte à l'intérieur duquel toute l'opération se déroule. Cette expression est donc équivalent à chercher tous les $cherche dans $texte et les remplacer par $remplace.

Exemple : Cherchons le mot "personne" et remplaçons le par le prénom "Marcel" par exemple.

<?php
$chaine ="Cher personne, <br />Nous vous remercions d'avoir bien voulus nous rejoindre. Merci personne de
votre participation.C'est très aimable de votre part.<br />A bientôt, personne";
echo str_replace( "personne", "Marcel", $chaine);
?>

Changement de casse : strtoupper et strtolower

Il s'agit maintenant de transformer les minuscules en majuscule ou inversement. Les fonctions en question sont strtolower pour avoir des textes en minuscules et strtoupper pour avoir des textes en majuscule.

Généralement, elles sont utilisées juste avant l'affichage pour normaliser la présentation des données. Dans un formulaire par exemple, s'il est nécessaire de mettre un nom en capitale, on n'est plus obligé d'indiquer à l'internaute de saisir son nom en majuscule. On peut le laisser faire comme bon lui semble et faire le traitement dans le code pour changer.

<?php
$nom = "Vernes";
$mail = "JULES@domaine.fr";
echo $nom. " devient " . strtoupper($nom) . "<br />"; //Mettre en majuscule
echo $mail . " devient " . strtolower($mail) . "<br />";//Mettre en minuscule
?>

Fonctions PHP : ucfirst et lcfirst

Toujours dans le même contexte, les fonction ucfirst() et lcfirst() convertissent en majuscules respectivement le premier caractère de la chaîne et le premier caractère de chaque mot.

<?php
$phrase = "une phrase débute toujours par un majuscule.";
echo $phrase . "<br />";
echo ucfirst($phrase) . "<br />";

$acronyme = "fond monétaire internationnale";
echo $acronyme . "<br />";
echo ucwords($acronyme);
?>


Les tableaux en PHP

PHP propose une autre façon de grouper et de manipuler les données: les tableaux. Il y a deux types de tableaux: les tableaux à index numériques et les tableaux associatifs. Ces deux types de tableau ont chacun leur syntaxe de déclaration.

Les tableaux à index numériques : array

Il s'agit d'une simple liste d'éléments. Pour les créer, on emploi le mot clé array(), et on sépare les élément par des virgules. Dans la liste, chaque élément est repéré par un numéro unique. Ce numéro est appelé index et est attribué automatiquement suivant les ordres.

Pour avoir accès à la valeur de chaque élément, on met la variable tableaux suivi de l'indice de l'élément mis entre crochet. Lors de la déclaration d'un tableau, il n'est pas nécessaire d'indiquer leur taille. Ceci est géré par PHP. Dans un tableau indexé numériquement le premier indice est par défaut 0.

<?php
$etudiant = array("Larah", "Sebastian", "Kevin", "Audile", "Rodrigue");
echo $etudiant[0].'<br>';
echo $etudiant[1].'<br>';
echo $etudiant[2].'<br>';
echo $etudiant[3].'<br>';
echo $etudiant[4].'<br>';
?>

Boucle, Tableau et fonction count

La fonction count permet d'avoir le nombre d'éléments que contient un tableau. En faisant un peu de révision sur les boucles, on peut avoir un code plus souple à partir du même exemple :

<?php
$etudiant = array("Larah", "Sebastian", "Kevin", "Audile", "Rodrigue");
for($i = 0;$i <= count($etudiant); $i++)
{
  echo $etudiant[$i] . "<br />";
}
?>

Les tableaux associatifs en PHP

Lors de la définition d'un tableau associatif, on indique nous même les indices du tableau. Dans la mesure où l'on est libre de les spécifier nous même, les indices peuvent être non seulement des nombres mais aussi des textes. Dans ce cas on parle de 'clé'. Ce type de tableau est très pratique dans le cas où l'on s'intéresse à la signification des valeurs contenues.

Toujours à l'aide du mot clé array, la définition d'un tableau associatif a la syntaxe suivante :

$tableau= array(
cle1=>valeur1 ,
cle2=>valeur2 ,
...);

On sépare donc les différentes clés valeur par des virgules. Pour accéder à un élément du tableau, on peut faire comme précédemment en indiquant la valeur de la clé comme indice. Voyons tout cela dans un exemple plus concret :

<?php
$personne = array(
"prenom" => "Jessy",
"nom" => "Brown",
"telephone" => "000011111",
);

//affichage de l'élément nom
echo $personne['nom'];
?>

Afficher tous les éléments d'un tableau : foreach

Si on veut afficher tous les éléments du tableau, en affichant chaque clé et chaque valeur, on peut utiliser l'instruction foreach comme ceci :

<?php
$personne = array(
"prenom" => "Jessy",
"nom" => "Brown",
"telephone" => "000011111", );

foreach ($personne as $key => $value) {
  echo "Clé: ". $key . ", Valeur : ". $value . "<br/ >n";

}
?>

PHP et tableaux multidimensionnels

Dans notre exemple, on a eu à gérer un tableau avec une seule personne. Vous imaginez peut être un tableau de plusieurs personnes, dont chaque personne a son prénom, nom et téléphone. Une bonne idée mais comment faire ?

Pour cela, il faut faire ce que l'appelle un tableau multidimensionnel. Pour faire plus simple, nous nous limiterons aux tableaux à deux dimensions sachant qu'on peut en faire à plusieurs dimensions. Définissons alors des personnes avec chacun leur numéro, nom , prenom et telephone.

Après, on peut accéder à leur valeur individuellement (par exemple on veut juste avoir le prénom de la première personne).

<?php
$personnes = array(
1 => array('prenom' => 'Jessy', 'nom' => 'Brown', 'telephone' => '00001111'),
2 => array('prenom' => 'Sharon', 'nom' => 'Dain', 'telephone' => '00221111'),
3 => array('prenom' => 'Marta', 'nom' => 'Blanca', 'telephone' => '003311111')
);
echo $personnes[1]['prenom']; //Jessy
?>

En utilisant l'instruction foreach , on aura :

<?php
$personnes = array(
1 => array('prenom' => 'Jessy', 'nom' => 'Brown', 'telephone' => '00001111'),
2 => array('prenom' => 'Sharon', 'nom' => 'Dain', 'telephone' => '00221111'),
3 => array('prenom' => 'Marta', 'nom' => 'Blanca', 'telephone' => '003311111')
);

foreach($personnes as $cle1 => $valeur1)
{
  echo "personne n°:" . $cle1 . "<br />";

    foreach ($valeur1 as $cle2=>$valeur2)

    {
      echo "Clé : ".$cle2 .", Valeur: " . $valeur2 . "<br />n";
    }
}
?>

Manipuler les tableaux PHP avec des fonctions

PHP propose de nombreuses fonctions très puissantes pour manipuler des tableaux.

Comme vous allez le voir, il est très facile de trier un tableau ou de compter ses élements.

Connaitre la taille d'un tableau : count

On entend par taille d'un tableau le nombre d'éléments que contient le tableau. Ceci est d'un intérêt multiple dont le principal est au niveau des compteurs de boucle. Dans la mesure où l'on désire utiliser une boucle pour l'affichage d'un tableau, il est nécessaire de connaitre la taille d'un tableau pour spécifier l'arrêt du compteur.

La fonction PHP count() renvoie la taille du tableau qu'on lui passe en paramètre :

<?php
$tab[0]=1;
$tab[1]=2;
$tab[2]=3;
$tab[3]=4;
$tab[4]=5;
$tab[5]=6;
$taille =count($tab);
echo 'La taille du tableau est :'.$taille;
?>

Recherche d'un élément dans un tableau : in_array

La fonction in_array() indique si une valeur appartient à un tableau. Cette fonction nous informe de la présence d'un élément dans le tableau en nous renvoyant TRUE s'il l'a trouvé et FALSE dans le cas contraire. Elle a en premier argument l'élément recherché, et en deuxième argument le tableau en question.

<?php
$etudiant = array ("Alissa", "Marianne", "Mickael", "Shania", "Odile", "Stefanie");
$recherche = "Marianne";
if(in_array($recherche, $etudiant))
{
echo $recherche." a été trouvé dans la liste des étudiants";
}
else
{
echo $recherche." n'est pas dans la liste des étudiants";
}
?>

Si la fonction in_array() permet de vérifier la présence d'un élément dans le tableau, une autre fonction nous permet d'avoir la clé correspondante de l'élément recherché. Il s'agit de la fonction array_search() qui fonctionne de manière similaire à in_array().

La différence est qu'elle retourne la clé correspondante de l'élément qu'elle a trouvé et FALSE si l'élément n'a pas été trouvé.

<?php
$etudiant = array ("Alissa", "Marianne", "Mickael", "Shania", "Odile", "Stefanie");
$recherche = "Marianne";
$cle = array_search($recherche, $etudiant);
if($cle === FALSE)
{
  echo $recherche." n'est pas dans la liste des étudiants";
}
else
{
  echo $recherche." a été trouvé dans la liste des étudiants. Son rang est : ".$cle ;
}
?>

Nombre d'occurrences d'un élément et gestion des doublons : array_count_value

Le nombre d'occurrences d'un élément d'un tableau est donné par la fonction array_count_value(). Elle renvoie pour chaque valeur le nombre d'occurrences trouvé dans un tableau associatif. Prenons toujours l'exemple des étudiants, en comptant le nombre de fois où Marianne apparait dans le tableau.

<?php
$etudiant = array ("Alissa", "Marianne", "Mickael", "Shania", "Odile", "Stefanie", "Marianne");
$occurence = array_count_values($etudiant);
echo "L'étudiant Marianne apparait ". $occurence['Marianne']." fois dans le tableau";
?>

Nous avons vu que Marianne apparait deux fois dans le tableau. Dans le cas où l'on a besoin de supprimer les doublons, la fonction array_unique () est à notre disposition. Elle retourne un nouveau tableau sans doublons quand on lui passe en paramètre le premier tableau.

<?php
$etudiant = array ("Alissa", "Marianne", "Mickael", "Shania", "Odile", "Stefanie", "Marianne");
//tableau avant :avec doublons
echo "avec doublons : ";
echo "<pre?>";
print_r($etudiant);
echo "</pre?>";

//enlever les doublons
$etudiant= array_unique($etudiant);

echo "sans doublons : ";
//tableau après : sans doublons
echo "<pre?>";
print_r($etudiant);
echo "</pre?>";
?>

Trier les tableaux avec PHP

Comme nous allons le voir, il est possible de trier un tableau de différente manière. Là encore, la souplesse de PHP va nous simplifier la tache.

Tri d'un tableau par valeur

La manière la plus simple et la plus utilisée pour trier les tableaux est de les trier par valeurs. Si l'on veut avoir par exemple un tableau des étudiants par ordre alphabétique, la fonction sort() permet de faire le tri. L'argument fourni sera le tableau lui-même.

<?php
//tri
$etudiant = array ("Alissa", "Mickael", "Shania", "Odile", "Stefanie", "Marianne");
echo "avant tri : ";
echo "<pre>";
print_r($etudiant);
echo "</pre>";

//trier le tableau
sort($etudiant);

//après tri
echo "après tri : ";
echo "<pre>";
print_r($etudiant);
echo "</pre>";
?>

Remarques sur les tris

Quelle est la différence entre :

1
2
3
4
11
12
13

... et ...

1
11
12
13
2
3
4
... ?

C'est ce que nous allons voir ci-dessous.

Les clés d'un tableau : SORT_NUMERIC, SORT_STRING

Pour forcer une comparaison numérique, il faut fournir SORT_NUMERIC en second paramètre de la fonction sort(). Il en est de même pour la comparaison textuelle : SORT_STRING.

Il est aussi possible de faire des tris en ordre inverse, c'est-à-dire un tri décroissant. Cela est possible grâce à la fonction rsort().

Fonctions de tri : ksort, krsort, natsort et usort

Il existe d'autre fonctions nous fournissent une variété très complète de façons de trier un tableau :

  • tri par clé : ksort() et krsort
  • tri naturel : natsort()
  • tri avec une fonction utilisateur : usort()

Je vous laisse le soin de les découvrir et de les employer selon vos besoins.


Taiter et manipuler les tableaux avec PHP

PHP nous fournit encore un bon nombre de manière pour traiter et manipuler les tableaux. Cette fois ci, on se penchera dans des études plus poussées sur les tableaux, notamment sur la relation entre chaîne de caractère et les tableaux, opération entre plusieurs tableaux, etc.

Bref, on abordera plusieurs techniques usuelles sur l'utilisation des tableaux.

Une relation étroite existe entre les traitements de chaînes de caractères et les tableaux. On peut alors transformer une séquence de chaîne de caractère en tableau, et inversement un tableau en une séquence de chaines de caractères.

Un séparateur jouera le rôle d'identificateur du découpage et mettra en exergue chaque élément du tableau. Voyons tout de suite cela à l'aide d'un exemple :

<?php
$list_fruit = "pomme, orange, kiwi, poire";
$tab_fruit = explode(",", $list_fruit);
echo "Le tableau des fruits:";
echo "<pre>";
print_r($tab_fruit);
echo "</pre>";
?>

Ici, la fonction explode() crée un tableau avec la chaine de caractère et le tableau crée contient comme élément chaque sous chaine délimitée par le séparateur : ",".

Inversement, un autre principe consiste à concaténer tous les éléments du tableau de façon à ce que le séparateur en argument sépare les éléments en plusieurs groupes distincts. Le résultat sera alors une chaine de caractères composée des éléments du tableau dont chaque élément du tableau est délimité par le séparateur.

Cela nous permet de générer une liste par exemple.

<?php
$tab_fruit = array("pomme", "orange", "poire");
$list_fruit = implode($tab_fruit, ",");
echo $list_fruit;
?>

Division et fusion de tableaux avec PHP

Il est souvent utile de diviser un tableau en plusieurs sous tableaux ou bien encore de fusionner plusieurs tableaux afin d'en obtenir un de taille plus conséquente. Voyons voir comment faire cela.

Division d'un tableau en plusieurs : array_chunk

"Diviser pour mieux régner", parfois il est aussi nécessaire de découper les tableaux en petit tableaux. La fonction array_chunk() sépare un tableau en plusieurs dont la taille est déterminée par le deuxième argument de la fonction.

Découpons par exemple notre fameux tableau des étudiants pour former le tableau des binômes (taille = 2).

<?php
$etudiant= array ("Alissa", "Mickael", "Shania", "Odile", "Stefanie", "Marianne", "Sophie","Marco");
echo "Le tableau des étudiants:";
echo "<pre>";
print_r($etudiant);
echo "</pre>";

//Découpage du tableau
$binome = array_chunk($etudiant, 2);

echo "Le tableaux des binômes:";
echo "<pre>";
print_r($binome);
echo "</pre>";

echo "Le premier binôme:";
echo "<pre>";
print_r($binome[0]);
echo "</pre>";
?>

Les étudiants sont alors groupés deux à deux et le premier binôme est constitué d'Alissa et de Mickael.

Fusion des tableaux en PHP : array_merge

Cependant "l'union fait la force", une fonction inverse de array_chunk() est là pour ça. Il s'agit de array_merge() qui fusionne les petits tableaux en un grand tableau. Dans notre exemple, les deux premiers binômes d'étudiant veulent s'unir pour former un groupe de quatre étudiants :

<?php
//tableau de départ

$etudiant= array ("Alissa", "Mickael", "Shania", "Odile", "Stefanie", "Marianne", "Sophie","Marco");
echo "Le tableau des étudiants:";
echo "<pre>";
print_r($etudiant);
echo "</pre>";

//Découpage du tableau
$binome = array_chunk($etudiant,2);

//Les binômes
echo "Le tableaux des binômes:";
echo "<pre>";
print_r($binome);
echo "</pre>";

//regroupement des deux premiers binômes
$etudiant_regroupe = array_merge($binome[0],$binome[1]);
echo "Le regroupement des deux binôme:";
echo "<pre>";
print_r($etudiant_regroupe);
echo "</pre>";
?>

Différence entre tableaux : array_diff

Supposons maintenant que l'on ait deux tableaux de groupes d'étudiants : $natation qui contient les étudiants qui font de la natation et $danse contient les étudiants qui font de la danse.

On souhaite avoir les étudiants qui ne font que de la natation, c'est-à-dire qui ne font pas de la danse. Dans ce cas on fait la différence des deux tableaux à l'aide de la fonction array_diff().

<?php
$natation = array ("Alissa", "Mickael", "Shania", "Odile", "Stefanie","Anaia", "Marianne", "Sophie","Marco","Zora");
$danse = array ("Natacha", "Mickael", "Shania", "Michèle", "Stefanie", "Adrien", "Patrick","Marco");
$diff = array_diff($natation,$danse );
echo "Ces étudiants ne font pas de la danse mais seulement de la natation:";
echo "<pre>";
print_r($diff);
echo "</pre>";
?>

Ceci renvoie à l'écran le tableau de la liste des étudiants qui ne font de la natation :

Array
(
[0] => Alissa
[3] => Odile
[5] => Anaia
[6] => Marianne
[7] => Sophie
[9] => Zora
)

Intersection entre tableaux et fonction array_intersect

A partir du même exemple, construisons maintenant un autre tableau qui contient les étudiants qui font les deux activités à la fois. Autrement dit, cherchons l'intersection entre les tableaux $natation et $danse en utilisant la fonction array_intersect().

<?php
$natation = array ("Alissa", "Mickael", "Shania", "Odile", "Stefanie","Anaia", "Marianne", "Sophie","Marco","Zora");
$danse = array ("Natacha", "Mickael", "Shania", "Michèle", "Stefanie", "Adrien", "Patrick","Marco");
$intersect = array_intersect($natation,$danse );

echo "Ces étudiants font à la fois de la danse et de la natation:";
echo "<pre>";
print_r($intersect);
echo "</pre>";
?>

On aura donc un tableau des étudiants qui font à la fois de la danse et de la natation :

Array
(
[1] => Mickael
[2] => Shania
[4] => Stefanie
[8] => Marco
)


Comment inclure les fichiers en PHP ?

Dans une programmation en PHP, sans l'inclusion de fichiers on serait obligé de copier coller le même code sur toutes les pages qui nécessitent une instruction identique.

Comme pour les fonctions par exemple, il se peut que vous ayez à utiliser les mêmes fonctions dans des fichiers différents. Vous auriez donc à recopier la définition de chaque fonction en haut de chaque page. Cette méthode rendrait les mises à jour plus difficiles. En effet, ça vous obligerait à parcourir toutes les pages pour modifier les définitions des fonctions.

Ce serait très malheureux de perdre du temps à faire ça alors qu'on a la possibilité de l'éviter en centralisant tout dans un même fichier.

Inclure un fichier avec la fonction include

Supposons que l'on a quelques fonctions sur le calcul des prix. On en aura souvent besoin dans les pages de notre site. On va les regrouper dans un fichier prix.php et on va essayer de l'inclure dans un fichier. Afin d'éviter de trimbaler ces fonctions partout, la fonction include nous servira d'inclusion de fichier.

La fonction en question se remplace elle-même par le contenu du fichier spécifié.

Contenu de prix.php :

<?php
function difference($prix1, $prix2)
{
$resultat=$prix1-$prix2;
return $resultat;
}

function calculttc($prixht,$tva)
{
$prixttc=$prixht*(1+$tva/100);
}

function calculht($prixttc,$tva)
{
$prixht=($prixttc*100)/($tva+100);
}

function calculremise($pourcentage, $prix)
{
$remise=$prix*$pourcentage;
}
?>

Dans une page catalogue.php, on a par exemple le prix hors taxe au départ. Cependant, on a besoin d'afficher le prix TTC.

Contenu de catalogue.php :

<?php
//affichage et calcul prix TTC
include ("prix.php"); //inclusion du fichier prix
$prixht=100;
define(TVA, 19.6);
$tva = 19.6;
echo "prix ttc:".calculttc($prixht,$tva);

echo calculttc($prixht,$tva);
?>

Dans une autre page, facture.php par exemple, on a besoin des différents prix et de calculer aussi la remise.

Contenu de facture.php :

<?php
//affichage et calcul de tous les prix
include ("prix.php");
$prixht=100;
define(TVA, 19.6);
$tva = 19.6;
$prixttc= calculttc($prixht,TVA);
$remise = calculremise(10,$prixht);
$apayer= difference($prixttc, $remise);

echo "prix ht:".$prixht."<br>";
echo "prix ttc:".$prixttc."<br>";
echo "prix remise 10%:".$remise."<br>";
echo "prix à payer:".$apayer."<br>";
?>

On 'inclue' le contenu du fichier prix.php dans les autres fichiers, en l'appelant par la fonction 'include', et en lui passant en paramètre le nom du fichier à include (dans l'exemple: prix.php).

Inclure des fichiers avec la fonction Require

L'instruction require fonctionne de la même façon qu'include. Toutefois, il existe une différence entre ces deux méthodes. Lorsque vous tentez d'inclure un fichier avec include, si le fichier n'existe pas, PHP affichera une alerte (warning).

Cela veut dire qu'il va vous signaler tout simplement l'erreur mais il continuera l'exécution du script. A l'inverse, la fonction require génèrera une erreur fatale. Il interrompe votre script en cas d'erreur. En d'autres termes, utilisez require() si vous voulez que votre script soit interrompu en cas d'inclusion manquant.

Exemple : Mélanger XHTML et PHP

On a parlé de page web, catalogue, etc mais jusqu'à présent nous n'avons pas trop abordé un sujet important :

Comment mélanger du PHP avec du html ? Voici venu ce moment propice que tout le monde a attendu. En fait, il est bel et bien possible de mettre du XHTML dans du PHP.

C'est d'ailleurs le but ultime de l'application de PHP dans le domaine de web. Pour cette expérience, utilisons 3 fichiers:

Contenu du fichier haut.php :

<table width="500" border="1" bgcolor="#66CCCC">
 <tr>
  <td><?php echo "&nbsp;Menu1"; ?></td>
  <td><?php echo "&nbsp;Menu2"; ?></td>
  <td><?php echo "&nbsp;Menu3"; ?></td>
  <td><?php echo "&nbsp;Menu4"; ?></td>
  <td><?php echo "&nbsp;Menu5"; ?></td>
  <td><?php echo "&nbsp;Menu6"; ?></td>
 </tr>
</table>

Contenu du fichier bas.php :

<table width="500" border="1" bgcolor="#FF9900">

  <tr>
 <td><?php echo "Pieds de page"; ?></td>
  </tr>
</table>

Contenu du fichier page1.php :

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>page</title>
</head>
<?php require("haut.php"); ?>
<table width="500" height="500" border="1" >

  <tr align="center">
 <td>

    <?php echo "contenu php"; ?>
   </td>
  </tr>

</table>
<?php require("bas.php"); ?>
</html>

Bien sûr, notre page a encore besoin d'une retouche. Néanmoins, la base est déjà là. Ce qui est intéressant c'est que là encore on a bien vu l'intérêt des inclusions de fichier.

En effet, le haut et le bas de page ne changent pas lors de la navigation. Toutes les pages n'ont peut être pas les mêmes contenus, mais le haut et le bas de page restent les mêmes quelque soit la page.

Dans ce cas, il suffit d'inclure le fichier haut.php, et le fichier bas.php dans toutes les pages. S'il y a quelque chose à modifier dans le fichier haut.php, on aura juste à toucher un seul fichier, et ceci impactera l'ensemble des pages faisant l'include.

Par conséquent, structurez votre page ainsi vous évitera certains problèmes.

Inclusion avec les fonctions require_once et include_once

Notez bien qu'il y a aussi deux autres fonctions require_once et include_once qui peuvent vous être utiles.

Ce sont les même que require et include mais la différence est qu'elles s'assurent que le fichier qu'on inclue ne l'a pas déjà. Il est conseillé de les utiliser lorsque vous voulez être sûrs que le fichier ne sera inclus qu'une seule fois, notamment pour éviter les déclarations qui engendrent des erreurs.

Un fichier rempli de fonctions, par exemple, ne peut être inclu qu'une seule fois (par exécution). Les fonctions étant déjà déclarées, elle ne peuvent l'être une seconde fois, et cela génèrerait une erreur.

Les tableaux super globaux de PHP

Maintenant que l'on a parlé des tableaux en détail, il est possible de s'intéresser aux tableaux super globaux de PHP.

PHP fourni un grand nombre de variables prédéfinies. En voici une liste tirée du manuel PHP qui va probablement vous servir :

$GLOBALS : Contient une référence sur chaque variable qui est disponible dans l'environnement d'exécution global. Les clés de ce tableau sont les noms des variables globales.

$_GET :C'est le tableau des variables fournies par le protocole HTTP en méthode GET. $_GET a remplacé $HTTP_GET_VARS.

$_POST : C'est le tableau des variables fournies par le protocole HTTP en méthode POST. C'est la nouvelle version de l'ancienne variable $HTTP_POST_VARS qui est maintenant obsolète, mais toujours là.

$_COOKIE : C'est le tableau des variables fournies par le protocole HTTP, dans les cookies. C'est la nouvelle version de l'ancienne variable $HTTP_COOKIE_VARS.

$_FILES :C'est le variables fournies par le protocole HTTP, suite à un téléchargement de fichier. C'est la nouvelle version de l'ancienne variable $HTTP_POST_FILES.

$_ENV : Les variables fournies par l'environnement. C'est la nouvelle version de l'ancienne variable $HTTP_ENV_VARS.

$_REQUEST : Les variables fournies au script par n'importe quel mécanisme d'entrée et qui ne doit recevoir une confiance limitée.

$_SESSION : Les variables qui sont actuellement enregistrées dans la session attachée au script. C'est la nouvelle version de l'ancienne variable $HTTP_SESSION_VARS.

Afficher les éléments d'un tableau super globaux

Pour afficher les éléments de chaque tableau, vous pouvez utiliser la fonction print_r en mettant le tableau en paramètre comme dans l'exemple suivant.

<?php
echo "<pre>";
print_r($GLOBALS); //affiche le nom des super globaux
echo "</pre>";
?>

La variable d'environnement $_SERVER

$_SERVER est un tableau des variables fournies par le serveur web, ou bien directement liées à l'environnement d'exécution du script courant. C'est la nouvelle version de l'ancienne variable $HTTP_SERVER_VARS.

Le tableau $_SERVER
Variable Utilité Affichage
$_SERVER['REQUEST_METHOD'] La méthode d'appel POST
$_SERVER['SERVER_NAME'] Nom du serveur localhost
$_SERVER['SERVER_ADMIN'] L'email de l'administrateur du serveur email@domaine.tld
$_SERVER['SERVER_ADDR'] L'Adresse IP du serveur 195.14.0.256
$_SERVER['QUERY_STRING'] Les paramètres indiquées à votre script url=toto.html&id=234
$_SERVER['REMOTE_PORT'] Port HTTP de la requête 80
$_SERVER['REMOTE_ADDR'] Adresse IP de l'internaute 88.101.2.255
$_SERVER['REQUEST_URI'] Chemin du script /exemple.php
$_SERVER['PATH_TRANSLATED'] Chemin physique (complet) du script /home/www/domain.fr/example.php
$_SERVER['HTTP_USER_AGENT'] User agent du navigateur du client Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0
$_SERVER['HTTP_REFERER'] L'URL de la page d'où provient l'internaute http://oseox.fr/exemple.php
$_SERVER['HTTP_HOST'] Le nom de domaine où est exécuté le script example.fr
$_SERVER['HTTP_ACCEPT_LANGUAGE'] Langue acceptée par le navigateur de l'internaute fr
$_SERVER['DOCUMENT_ROOT'] Adresse de la racine du serveur /var/www/exemple.fr/


 
  Aujourd'hui sont déjà 1 visiteurs (2 hits) Ici! ;  
 
Ce site web a été créé gratuitement avec Ma-page.fr. Tu veux aussi ton propre site web ?
S'inscrire gratuitement