YBET

Rue Albert 1er, 7

6810 Pin - Chiny

Route Arlon - Florenville

(/fax: 061/32.00.15

Le PHP - MySQL, créer un site internet dynamique

YBET informatique   Contact

4. Utiliser des fonctions en PHP

1. Création de fonctions personnelles. - 2. Fonction conditionnelle si - 3. Fonction répétitive WHILE - 4. Opérateurs logiques - 5. La commande switch - 6. La commande isset() - 7. Informations sur les visiteurs - 8. Fonction include() et require()

Cette partie du cours PHP va nous permettre de créer nos propres fonctions et d'utiliser des fonctions plus complexes pour la création de notre site Internet. La principale partie reprend les tests en boucles et les paramètres de comparaison pour les conditions. Toutes ne sont pas proposées ici.

1. Créer ses propres fonctions

Créer une fonction en PHP va nous permettre de définir des fonctionnalités supplémentaires dans nos pages Internet et de les réutiliser au sein d'une même page. En php 3, les fonctions doivent être établies au préalable (en début de page), plus en PHP4 et suivants. La syntaxe d'une fonction est:

  • function nom-fonction($argument1, $argument2) {
  • // code php
  • return $variable;
  • }

FUNCTION (mot réservé) permet de spécifier que les lignes suivantes (encadrées par { et }) reprennent les arguments d'une fonction.

$argument1 et $argument2 sont des variables transférées à la fonction, $variable, le résultat (précédé de return).

Comme exemple, créons la fonction qui calcule et affiche un prix TVA comprise suivant un prix de départ et un taux de TVA

<?php
function prix_tvac($prix_htva,$taux_tva)
{
return ($prix_htva*(1+$taux_tva/100));
}
print(prix_tvac(19.23,21));
?>

Ces lignes affichent le prix TVAc d'un produit de 19,23 € pour un taux de 21 %, soit 23,2683

Remarques:

  1. Si vous transférez trop d'arguments, les arguments excédentaires sont ignoré.
  2. Si le nombre d'arguments est insuffisant, la fonction renvoie la valeur booléen FALSE
  3. Un seul paramètre peut-être renvoyé par return mais vous pouvez utiliser une matrice array(0,1,2,3), à condition que le nombre de valeurs soit défini (fixe) et pas avec des valeurs comme nom de table (tableau['valeur'] ne sera par exemple pas repris).

2. Fonction conditionnelle IF (si)

Comme beaucoup d'autres langages de programmation, PHP utilise la fonction IF pour les opérations conditionnelles. Sa structure:

  • <?php
  • if (condition1) {
  • // fonction1
  • }elseif (condition2) {
  • //fonction2
  • }else {
  • //fonction3
  • }
  • ?>

Si la condition 1 est vraie, le programme exécute la fonction1, sinon, elle vérifie la condition 2. Si cette condition est remplie, elle exécute la fonction2. Si les premières conditions ne sont pas corretes, c'est la fonction3 qui est exécutée.

Le tableau suivant reprend les comparaisons possibles.

condition exemple Utilisation
= = $valeur1==$valeur2 égal: vrai si $valeur1 est égal à $valeur2
= = = $valeur1===$valeur2 identique: vrai si $valeur1 est égal à $valeur2 et s'ils sont de même type (à partir de PHP version 4)
<> $valeur1<>$valeur2 différent: vrai si $valeur1 est différente de la $valeur2
< $valeur1<$valeur2 inférieur: vrai si $valeur1 est inférieure à $valeur2
> $valeur1>$valeur2 supérieur: vrai si $valeur1 est supérieure à $valeur2
<= $valeur1<=$valeur2 inférieur ou égal: vrai si $valeur1 est inférieure ou égale à $valeur2
>= $valeur1>=$valeur2 supérieur ou égal: vrai si $valeur1 est supérieure ou égale à $valeur2

Le sigle égal est réservé pour introduire des données dans une variable. Dans les versions inférieures à PHP 4, "1" == 1 renvoie la valeur vraie (même s'ils sont de types différents).

3. La fonction While

Cette fonction permet de faire une boucle tant que la condition est vraie. Attention de mettre une valeur qui varie dans le temps (par exemple un compteur qui s'incrémente à chaque boucle), sinon, le programme tourne sur lui même à l'infini (en boucle).

While(condition)
{
// a effectuer
// modification de la variable reprise en condition pour éviter une boucle infinie
}

En PHP, la fonction While peut par exemple afficher les nombre de 0 à 9 par le script:

  • $i=0;
  • while($i<10){
  • print($i."<br>");
  • $i=$i+1;
  • }

4. Opérateurs logiques

Comme dans la majorité des langages de programmations, vous pouvez utiliser les fonctions Et et Ou dans les fonctions conditionnelles Si:

Comparateur exemple Nom description
AND $valeur1 AND $valeur2 ET Vrai si toutes les conditions sont exactes
OR $valeur1 OR $valeur2 Ou Vrai si une des condition est exacte
XOR $valeur1 XOR $valeur2 Ou exclusif Vrai si une des condition est exacte, mais pas toutes en même temps
! ! $valeur1 Non Vrai si $valeur1 est fausse
&& $valeur1 && $valeur2 ET Vrai si toutes les conditions sont exactes
|| $valeur1 || $valeur2 Ou Vrai si une des condition est exacte

5. La commande Switch

La commande Switch permet de définir une liste de commande en fonction d'une variable.

switch($variable){

 case valeur1:

   commmande 1

   break;

case valeur2:

   commande 2

   break;

default:

   commande avec valeur

   break;

}

Exemple:

<?php
$variable=1;
switch($variable){
case 1:
 echo '1';
 break;
case 2:
 echo'2';
 break;
default:
 echo'autre valeur';
 break;
}
?>

Ce petit programme affiche 1 si $variable vaut 1, 2 si la variable est 2 et autre dans tous les autres cas.

6. La commande Isset()

La commande ISSET() est régulièrement utilisée dans les fonctions conditionnelles, elle vérifie si une variable est définie et renvoie true (Vrai). Dans le cas contraire, la fonction renvoie False (faux).

Prenons un exemple:

<?PHP $a="valeur"; print(isset($a)); print(" -la valeur a est bien définie<br>"); print(isset($b)); ?>

Affichera "1 - La valeur a est bien définie". Remarquez que la fonction ISSET($b) n'est pas affichée. Nous pouvons modifier nos lignes de commandes comme:

<?php

If (isset($b)==FALSE){

print ("Valeur PHP b non définie");

}

?>

ou

<?php

if (!isse($b)

{

print ("variable PHP b non définie");

}

Nous avons inséré la commande print("<br>"); qui envoie un saut de ligne et utilisé une ligne de commande Si pour afficher "Valeur PHP b non définie". Remarquez que pour tester l'égalité, nous utilisons ==. Le signe = est utilisé uniquement pour associer une valeur à une variable. La deuxième méthode utilise la négation ! (différent de) et donne un résultat identique.

7. Informations sur le visiteur

PHP inclut en standard quelques fonctions permettant de mieux connaître les visiteurs d'un site. Elles sont automatiquement récupérées par PHP.

Les données sont intégrées dans un tableau $_SERVER["ligne"]="valeur" ($HTTP_SERVER_VARS["ligne"]= "Valeur" dans les anciennes versions PH3, et PH4). Les valeurs possibles sont:

Fonction description exemple de valeur
$_SERVER["REMOTE_ADDR"] adresse IP de l'internaute 62.32.56.269
$_SERVER["HTTP_USER_AGENT"] Type de navigateur utilisé - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322): Windows 2000 sous Internet explorer 6.0
- Mozilla/5.0 (Windows; U; Windows NT 5.0; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1: Win 2000 sous Firefox1.5
$_SERVER["SCRIPT_FILENAME"] le nom du fichier PHP en cours index.php
$_SERVER["REQUEST_URI"] L'adresse de la page sans le nom de domaine /index.php ou /
$_SERVER["REQUEST_METHOD"] procédure pour obtenir la page Par défaut GET, sauf pour les formulaires ou l'on peut également utiliser la fonction POST
$_SERVER["HTTP_REFERER"] nom complet de la page Internet précédente L'adresse complète de la page qui fait un lien. Depuis PHP 5.3, cette commande donne une erreur en cas d'accès direct (par les favoris par exemple)
$_SERVER["HTTP_HOST"] le nom de domaine de la page http://www.ybet.be

L'affichage de ces valeurs utilise les fonctions en Print() ou Echo.

Exemple d'utilisation:

<?PHP

date_default_timezone_set('Europe/Brussels'); // évite le message d'erreur à partir de 5.3

print('Nous sommes le ');

print(date('d/m/Y')); print('. Il est actuellement '); print(date('H:i:s')); print('.'); 

Print(' Ton adresse Internet IP ');

Print($_SERVER['REMOTE_ADDR']);

print(" ");

Print($_SERVER['HTTP_USER_AGENT']); 

print("Ta page d'arrivée est: ");

print($_SERVER['HTTP_REFERER']);

?>

Nous sommes le 21/11/2024.
Il est actuellement 11:17:56 Ton adresse Internet IP 3.15.239.0 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Ta page d'arrivée est:
Warning: Undefined array key "HTTP_REFERER" in /home/ybetbe/public_html/internet14/php-4.php on line 660

8. Intégrer des fonctions et des fichiers.

PHP permet d'intégrer des fichiers (contenu) dans des pages. Prenons quelques exemples: insérer une partie navigation, insérer des fonctions, ... sur plusieurs pages. L'idée est de créer un fichier à part reprenant une page php, html ou même javascript et de l'insérer sur une page existante. L'avantage est d'automatiser les modifications en ne modifiant que un fichier à part.

PHP utilise deux fonctions distinctes pour intégrer d'autres fichiers dans une page:

require('fichier'); inclus le contenu du fichier dans la page et arrête le script si le fichier est introuvable.

include('fichier'); même fonction mais n'arrête pas le programme si le fichier ,'existe pas. 

Ces deux fonctions seront utilisées de différentes manières.

  1. En rassemblant toutes les fonctions utilisées sur le site dans un seul fichier. Généralement, on met .inc à ce fichier (exemple fonction.inc) pour éviter qu'ils sont directement exécuté. Il est appelé en début de chaque page.
  2. Récupérer une partie navigation identique sur un groupe de page, un script en langage javascript, ... Exemple: include('navigation.php') ou require('droite.htm').

Nous utiliserons l'une ou l'autre très souvent dans la suite, notamment pour exécuter les codes de connexion aux bases de données MySQL.

En complément: Utilisation des variables $_server, détection et interdiction des visiteurs non standards

< 3 . Premières commandes en PHP

> 5. Variables en tableaux

Mise en ligne: 20/02/2006, modification 24/03/2012 (PHP 5.3)