1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard
2 Table des matières Récupération et stockage de données dans les fichiers Réutilisation de code par l’écriture de fonctions
3 Les fichiers
4 Pourquoi utiliser les fichiers C’est la façon la plus simple d’enregistrer de l’information sur le disque dur. Ex : Créer un fichier rapport à la suite de l’exécution d’un programme. Lecture d’un fichier qui contient la configuration de votre programme.
5 Local ou à distance Chemin absolu C:\monDossier\monfichier.txt Chemin relatif ..\monDossier\monFichier.txt Vers des ressources externes ftp://domaine.com/monFichier.txt ftp://domaine.com/monFichier.txt
6 Étapes importantes Manipulation d’un fichier en 3 étapes: 1. Ouverture 2. Lecture ou écriture 3. Fermeture
7 Ouverture d’un fichier fopen Ouverture d’un fichier Retourne une variable de type ressource Exemple : $pf = fopen("nomFichier.ext", $mode); Modes disponibles : R, r+, w, w+, a, a+, x, x+
8 Liste des seconds paramètres pour la fonction fopen() rLecture. Le pointeur est au début du fichier. r+Lecture ou écriture. Le pointeur est au début du fichier. wÉcriture. Remplace le fichier. Si fichier n'existe pas : essai créer. w+Identique à « w » mais permet aussi la lecture.
9 Liste des seconds paramètres pour la fonction fopen() aAjout à la fin du fichier. Si le fichier n'existe pas, on tente alors de le créer. a+Identique à « a », mais permet aussi la lecture. xCréation fichier et écriture. Si fichier existe : erreur. x+Identique à « x, mais permet aussi la lecture.
10 Écriture Pour écrire dans un fichier, nous devons utiliser une variable de type ressource (pointeur de fichier) et envoyer la chaîne à écrire en paramètre. fwrite($pf, "Bonjour fichier!");
11 Lecture Lorsqu’on veut récupérer une ligne d’un fichier, il est nécessaire de fournir la variable ressource à la fonction fgets. $ligne = fgets($pf);
12 Fermeture du fichier Lorsque notre traitement (lecture ou écriture) est terminé, il faut fermer l’ouverture avec la fonction flcose. fclose($pf);
13 Exemple complet - lecture <?php $fp = fopen(" while (!feof($fp)) { $page.= fgets($fp); } fclose($fp); echo $page; ?>
14 Exemple complet - écriture <?php $pf=fopen('dossier1/fichier.txt','a+'); if (!is_resource($pf)) { die('Ouverture du fichier impossible'); } else { fputs($pf,"*Ajout d'une ligne en php\n"); fclose($pf); } ?>
15 Autres fonctions file_exists Retourne true si le fichier existe. feof Retourne true si la fin du fichier est atteinte. rewind Retour du pointeur de fichier au début du fichier. fgetss Renvoie la ligne courante du fichier et élimine les balises HTML.
16 PhpFrance Les fichiers - fopen, fputs, fclose, /2005/03/01/9-les-fichiers /2005/03/01/9-les-fichiers Les fichiers (II) - is_dir(), is_executable(), is_file() /2005/03/01/10-les-fichiers-ii /2005/03/01/10-les-fichiers-ii
17 Exercice 1 Créez un fichier motbienvenue.txt. Écrivez un mot de bienvenue dans ce fichier. Affichez le contenu de ce fichier dans votre page : file_get_contents("motbienvenue.txt");
18 Exercice 2 Créez un fichier produits.txt. Entrez un nom de produit par ligne. Affichez le contenu de ce fichier dans votre page en utilisant : fopen, feof, fgets, fclose
19 Exercice 3 Créez un fichier inscriptions.txt. Créez un script qui écrit 5 courriels dans ce fichier. Écrivez dans le fichier en utilisant : file_exists, is_writable, fopen, fputs, fclose
20 Les fonctions
21 Définition une fonction est un ensemble d'instructions réalisant une certaine tâche.
22 Objectif Centraliser le code à un endroit. Plutôt que de faire du copier coller et de dupliquer le code. Les fonctions améliorent la réutilisation et la maintenance du code.
23 Sans paramètre et sans retour function AfficherHeure() { echo date("G"); }
24 Avec paramètre et sans retour function AfficherConfirmation($nom) { echo "Bonjour $nom, votre commande sera envoyée dans les plus brefs délais."; }
25 Avec paramètres et avec retour function Additionner($nb1, $nb2) { $resultat = $nb1 + $nb2; return $resultat; }
26 Un nombre variable de paramètres func_get_arg — Retourne un élément de la liste des arguments. func_get_args — Retourne les arguments d'une fonction sous la forme d'un tableau. func_num_args — Retourne le nombre d'arguments passés à la fonction.
27 Un nombre variable de paramètres function afficherListe() { $numargs = func_num_args(); echo " Nombre d'arguments : $numargs \n"; $i = 0; for ($i = 0; $i < $numargs; $i++) { echo "Item $i : ". func_get_arg($i). " "; } afficherListe(1, 2, 3); afficherListe("item1", "Item2", "item3", "item4");
28 Portée des variables En plus du type, les variables ont une « portée » qui est locale ou globale. Elles peuvent aussi être statiques. Référence: php.net/manual/fr/ language.variables.scope.phpphp.net/manual/fr/ language.variables.scope.php
Variable globale <?PHP $a = 1; include 'b.php'; ?> La variable a est globale et accessible dans le fichier “b.php”. 29
Variable locale Qu’est-ce qui s’affiche? 30
Le mot clé global <?php $a = 1; $b = 2; function somme() { global $a, $b; $b = $a + $b; } somme(); echo $b; ?> Cet exemple va afficher la valeur 3. En utilisant le mot clé, toutes les références à ces variables concerneront les variables globales. 31
32 Référence ou valeur Par référence (&) signifie que la nouvelle variable ne fait que référencer (en d'autres termes, "devient un alias de", ou encore "pointe sur") la variable originale. Les modifications de la nouvelle variable affecteront l'ancienne et vice versa. Par valeur Duplique l’argument passé en paramètre
Par référence Le référencement transcende les barrières de portée des variables. 33
34 Exercice 1 Créez la fonction AfficheBienvenue qui affiche un message de bienvenue. Créez la fonction AfficheMsgPerso($nom) qui affiche un message de bienvenue en incluant le nom de la personne à saluer. Créer la fonction Mult($nb1, $nb2) qui retourne le résultat de la multiplication.
35 Exercice 2 Migrez votre code de lecture du mot de bienvenue dans une fonction. Créez une fonction qui affiche les items de votre menu dans un tableau avec les liens associés. Créez une fonction qui retourne la date du jour dans une chaîne de caractères.
36 Trucs et hébergement
37 Hébergement Plusieurs hébergeurs gratuits supportent le PHP. Vous pouvez vous abonnez et obtenir un espace gratuitement. Hébergement PHP gratuit webhosting.php webhosting.php