La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Tester un fichierManipuler un fichierManipuler un répertoire Les données disponibles Les fichiers On peut obtenir sur un fichier toutes les informations.

Présentations similaires


Présentation au sujet: "Tester un fichierManipuler un fichierManipuler un répertoire Les données disponibles Les fichiers On peut obtenir sur un fichier toutes les informations."— Transcription de la présentation:

1 Tester un fichierManipuler un fichierManipuler un répertoire Les données disponibles Les fichiers On peut obtenir sur un fichier toutes les informations visibles dans une fenêtre Web de ce type : AULAS - 2007 ExistenceAccessibilitéTailleDatesType

2 Tester un fichierManipuler un fichierManipuler un répertoire Récapitulatif : Les fichiers AULAS - 2007 ExistenceAccessibilitéTailleDatesType file_exists (nomFic) renvoie true si le fichier "nomFichier" existe filetype (nomFic) renvoie le type du document is_dir (nomFic) is_file (nomFic) renvoie true si le document est un répertoire renvoie true si le document est un fichier filesize (nomFic) renvoie la taille du document en octets is_readable (nomFic) is_writeable (nomFic) renvoie true si le document est accessible en lecture (readable) et en écriture (writreable) filectime (nomFic) filemtime (nomFic) renvoie la date de création du document renvoie la date de modification du document

3 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 1 Les fichiers 1. Ecrivez une fonction infoFichier qui, si le document existe, indique s'il s'agit d'un fichier et quelle est sa taille. AULAS - 2007 ExistenceAccessibilitéTailleDatesType

4 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 1 Les fichiers 1. Ecrivez une fonction infoFichier qui, si le document existe, indique s'il s'agit d'un fichier et quelle est sa taille. function infoFichier ($fic) { if (file_exists($fic)) { if (is_file($fic)) print " $fic est un fichier. "; print "$fic pèse ".filesize($fic).". "; } infoFichier("archi.txt"); AULAS - 2007 ExistenceAccessibilitéTailleDatesType

5 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 1 Les fichiers 1. Ecrivez une fonction infoFichier qui, si le document existe, indique s'il s'agit d'un fichier et quelle est sa taille. 2. Complétez la fonction infoFichier pour qu'elle affiche la date de création du document. AULAS - 2007 ExistenceAccessibilitéTailleDatesType

6 Tester un fichierManipuler un fichierManipuler un répertoire La fonction date ("format", date_unix) Les fichiers Pour obtenir un affichage correct de la date de création d'un fichier, il faut recourir à la fonction date() qui transcrit dans le format que vous prescrivez le format d'origine epoch Unix. Le format se défini par un ensemble de lettres qui permettent de spécifier l'affichage de telle ou telle partie de la date. Le test suivant vous renvoie la date au format Unix: print date ("U"); Ce test vous permet de d'avoir le jour, le mois, l'année, l'heure, les minutes et les secondes. print date ("d m y H i s"); AULAS - 2007 ExistenceAccessibilitéTailleDatesType

7 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 1 Les fichiers 2. Complétez la fonction infoFichier pour qu'elle affiche la date de création du document. function infoFichier ($fic) { if (file_exists($fic)) { if (is_file($fic)) { print " $fic est un fichier. "; print "$fic pèse ".filesize($fic).". "; } infoFichier("archi.txt"); AULAS - 2007 ExistenceAccessibilitéTailleDatesType

8 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 1 Les fichiers 2. Complétez la fonction infoFichier pour qu'elle affiche la date de création du document. function infoFichier ($fic) { if (file_exists($fic)) { if (is_file($fic)) { print " $fic est un fichier. "; print "$fic pèse ".filesize($fic).". "; print "$fic a été créé le ".date("d/m/y", filectime($fic)).". "; } infoFichier("archi.txt"); AULAS - 2007 ExistenceAccessibilitéTailleDatesType

9 Tester un fichierManipuler un fichierManipuler un répertoire include() et require() Les fichiers Les fonctions include ("nomFic") et require ("nomFic") permettent d'inclure le contenu d'un fichier nomFic dans le script courant. Ex: include ("archi.txt"); Les fonctions include_once ("nomFic") et require_once ("nomFic") Permettent d'interdire une insertion redondante. Ex: for ($i=0; $i<5; $i++) include_once ("archi.txt"); //archi.txt n'est inclu qu'une seule fois AULAS - 2007 OuvrirFermerLire et écrire

10 Tester un fichierManipuler un fichierManipuler un répertoire Procédure pour manipuler un fichier Les fichiers Quelque soit le type de langage, la manipulation d'un fichier passe toujours par les étapes suivantes : 1- Ouverture 2 - Lecture 3 - Copie des données 4 - Modification des données 5 - Ecriture 6 - Fermeture Les nombreuses fonctions php permettent de sauter beaucoup de ces étapes. AULAS - 2007 OuvrirFermerLire et écrire

11 Tester un fichierManipuler un fichierManipuler un répertoire Ouvrir un fichier avec fopen ("nomFic.txt", mode) Les fichiers La fonction fopen () permet d'ouvrir un fichier dans différents modes : - r pour lecture (read) - w pour écriture (write) - a pour ajout (add) Cette fonction renvoie un pointeur par le biais duquel sera ensuite manipulé le fichier. Ex : $pFic = fopen ("nomFic.txt", 'r'); Attention: $pFic pointe vers le fichier mais ne le contient pas. AULAS - 2007 OuvrirFermerLire et écrire

12 Tester un fichierManipuler un fichierManipuler un répertoire Lire Les fichiers Il existe de nombreuses façons de lire le contenu d'un fichier : - ligne par ligne avec fgets ($pFic[, longueur]); - par bloc de caractères avec fread ($pFic, longueur); - caractère par caractère avec fgetc ($pFic); AULAS - 2007 OuvrirFermerLire et écrire

13 Tester un fichierManipuler un fichierManipuler un répertoire Lire Les fichiers fgets ($pFic[, longueur]); Si on ne mentionne pas la longueur, fgets lit tout jusqu'au prochain saut de ligne. Ex: $fic = "archi.txt"; $pFic = fopen ($fic, "r") or die ("Impossible d'ouvrir $fic"); while ($ligne = fgets ($pFic)) { print "$ligne "; } AULAS - 2007 OuvrirFermerLire et écrire

14 Tester un fichierManipuler un fichierManipuler un répertoire Lire Les fichiers fread ($pFic, longueur); fread() lit une longueur arbitraire, indépendamment des sauts de ligne. Ex: $fic = "archi.txt"; $pFic = fopen ($fic, "r") or die ("Impossible d'ouvrir $fic"); while ($ligne = fread ($pFic, 30)) // récupère des sections de 30 caractères { print "$ligne "; } AULAS - 2007 OuvrirFermerLire et écrire

15 Tester un fichierManipuler un fichierManipuler un répertoire Lire Les fichiers fgetc ($pFic); fgetc renvoie un caractère à la fois. Ex: $fic = "archi.txt"; $pFic = fopen ($fic, "r") or die ("Impossible d'ouvrir $fic"); while (!feof($pFic)) { $char = fgetc ($pFic); print "$char "; // Le résultat s'appelle un acrostiche. } AULAS - 2007 OuvrirFermerLire et écrire

16 Tester un fichierManipuler un fichierManipuler un répertoire Lire vite fait Les fichiers file (nomFichier) La fonction file("nomFic") permet de charger le contenu de "nomFic" dans un tableau avec un élément par ligne. Charge à vous d'en afficher le contenu. Ex: $fic = "archi.txt"; $tableau = file($fic); foreach($tableau as $valeur) print "$valeur "; AULAS - 2007 OuvrirFermerLire et écrire

17 Tester un fichierManipuler un fichierManipuler un répertoire Lire vite fait Les fichiers readfile (nomFichier) readfile se charge de tout. Ouvrir nomFichier, le lire, le fermer et afficher le contenu. Ex: $fic = "archi.txt"; readfile ($fic); AULAS - 2007 OuvrirFermerLire et écrire

18 Tester un fichierManipuler un fichierManipuler un répertoire Lire vite fait Les fichiers explode ("délimiteur", chaîne_de_caractère) explode permet de récupérer dans un tableau des sous-chaînes séparées par un délimiteur passé en argument. Ex: $fic = "archi.txt"; $tableau = file($fic); foreach ($tableau as $valeur) { $sstableau = explode (" : ", $valeur); foreach ($sstableau as $ssvaleur) { print "$ssvaleur "; } print " "; } AULAS - 2007 OuvrirFermerLire et écrire

19 Tester un fichierManipuler un fichierManipuler un répertoire Ecrire Les fichiers Pour écrire dans un fichier, il convient d'abord de l'ouvrir en mode écriture 'w' ou ajout 'a'. Ex: $fic = "archi.txt"; $pFic = fopen($fic, 'a'); Il existe deux fonctions identiques pour insérer du texte : - fwrite ($pFic, "chaine"[, longueurMax]) - fputs ($pFic, "chaine"[, longueurMax]) AULAS - 2007 OuvrirFermerLire et écrire

20 Tester un fichierManipuler un fichierManipuler un répertoire Fermer Les fichiers Quelque soit l'opération effectuée à l'intérieur d'un fichier, il convient de le refermer "après usage" à l'aide de la fonction fclose ($pFic) Ex: $fic = "archi.txt"; $pFic = fopen($fic, 'a'); // Ici je fais ce que je veux avec le fichier. fclose ($pFic); AULAS - 2007 OuvrirFermerLire et écrire

21 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Créez une fonction afficher(nomFichier, separateur) qui affiche le contenu de archi.txt dans un tableau et appelez-la à l'intérieur de votre code HTML. AULAS - 2007 OuvrirFermerLire et écrire

22 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Créez une fonction afficher(nomFichier, separateur) qui affiche le contenu de archi.txt dans un tableau et appelez-la à l'intérieur de votre code HTML. function afficher($fichier, $separateur){ } AULAS - 2007 OuvrirFermerLire et écrire

23 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Créez une fonction afficher(nomFichier, separateur) qui affiche le contenu de archi.txt dans un tableau et appelez-la à l'intérieur de votre code HTML. function afficher($fichier, $separateur){ $tab = file($fichier); } AULAS - 2007 OuvrirFermerLire et écrire

24 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Créez une fonction afficher(nomFichier, separateur) qui affiche le contenu de archi.txt dans un tableau et appelez-la à l'intérieur de votre code HTML. function afficher($fichier, $separateur){ $tab = file($fichier); print " "; } AULAS - 2007 OuvrirFermerLire et écrire

25 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Créez une fonction afficher(nomFichier, separateur) qui affiche le contenu de archi.txt dans un tableau et appelez-la à l'intérieur de votre code HTML. function afficher($fichier, $separateur){ $tab = file($fichier); print " "; foreach ($tab as $val) { } print " "; } AULAS - 2007 OuvrirFermerLire et écrire

26 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Créez une fonction afficher(nomFichier, separateur) qui affiche le contenu de archi.txt dans un tableau et appelez-la à l'intérieur de votre code HTML. function afficher($fichier, $separateur){ $tab = file($fichier); print " "; foreach ($tab as $val) { print " "; } print " "; } AULAS - 2007 OuvrirFermerLire et écrire

27 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Créez une fonction afficher(nomFichier, separateur) qui affiche le contenu de archi.txt dans un tableau et appelez-la à l'intérieur de votre code HTML. function afficher($fichier, $separateur){ $tab = file($fichier); print " "; foreach ($tab as $val) { print " "; $sstab = explode($separateur, $val); } print " "; } AULAS - 2007 OuvrirFermerLire et écrire

28 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Créez une fonction afficher(nomFichier, separateur) qui affiche le contenu de archi.txt dans un tableau et appelez-la à l'intérieur de votre code HTML. function afficher($fichier, $separateur){ $tab = file($fichier); print " "; foreach ($tab as $val) { print " "; $sstab = explode($separateur, $val); foreach ($sstab as $ssval) { print " $ssval"; } } print " "; } AULAS - 2007 OuvrirFermerLire et écrire

29 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Créez une fonction afficher(nomFichier, separateur) qui affiche le contenu de archi.txt dans un tableau et appelez-la à l'intérieur de votre code HTML. AULAS - 2007 OuvrirFermerLire et écrire

30 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Ajoutez maintenant un formulaire qui permette d'insérer des données dans archi.txt (en respectant son format). Commencez par rédiger le formulaire HTML. Ne vous occupez du code php que dans un second temps. AULAS - 2007 OuvrirFermerLire et écrire

31 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Ajoutez maintenant un formulaire qui permette d'insérer des données dans archi.txt (en respectant son format). Commencez par rédiger le formulaire HTML. Ne vous occupez du code php que dans un second temps. " method="GET"> Type de batiment : Date du batiment : Adresse du batiment : Auteur(s) du batiment : AULAS - 2007 OuvrirFermerLire et écrire

32 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Ajoutez maintenant un formulaire qui permette d'insérer des données dans archi.txt (en respectant son format). Commencez par rédiger le formulaire HTML. Ne vous occupez du code php que dans un second temps. if (!empty($_GET)) { } AULAS - 2007 OuvrirFermerLire et écrire

33 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Ajoutez maintenant un formulaire qui permette d'insérer des données dans archi.txt (en respectant son format). Commencez par rédiger le formulaire HTML. Ne vous occupez du code php que dans un second temps. if (!empty($_GET)) { $pFic = fopen ("archi.txt", 'a'); fputs ($pFic, $chaine); fclose ($pFic); } AULAS - 2007 OuvrirFermerLire et écrire

34 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Ajoutez maintenant un formulaire qui permette d'insérer des données dans archi.txt (en respectant son format). Commencez par rédiger le formulaire HTML. Ne vous occupez du code php que dans un second temps. if (!empty($_GET)) { $separateur = " : "; $pFic = fopen ("archi.txt", 'a'); fputs ($pFic, $chaine); fclose ($pFic); } AULAS - 2007 OuvrirFermerLire et écrire

35 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Ajoutez maintenant un formulaire qui permette d'insérer des données dans archi.txt (en respectant son format). Commencez par rédiger le formulaire HTML. Ne vous occupez du code php que dans un second temps. if (!empty($_GET)) { $separateur = " : "; $chaine = $_GET['batiment']; $chaine.= $separateur.$_GET['date']; $chaine.= $separateur.$_GET['adresse']; $chaine.= $separateur.$_GET['auteur']."\n"; $pFic = fopen ("archi.txt", 'a'); fputs ($pFic, $chaine); fclose ($pFic); } AULAS - 2007 OuvrirFermerLire et écrire

36 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Il ne vous reste plus qu'à donner la possibilité à votre utilisateur de supprimer des enregistrements. Pensez qu'un lien de type: Supprimer peut fournir un moyen d'interaction simple indépendamment de tout formulaire. 1. Commencez par améliorer la fonction afficher() pour qu'elle fournisse une interface qui permette de supprimer des enregistrements. 2. Faites en sorte que votre programme prenne en compte les instructions de suppression. AULAS - 2007 OuvrirFermerLire et écrire

37 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers function afficher($fichier, $separateur){ $tab = file($fichier); print " "; for ($i = 0; $i<count($tab);$i++) { print " "; $sstab = explode($separateur, $tab[$i]); foreach ($sstab as $ssval) print " $ssval"; print " Supprimer "; } print " "; } AULAS - 2007 OuvrirFermerLire et écrire

38 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Garde-meuble du mobilier national 1934 1, rue Berbier du Mets Auguste PERRET Supprimer Ensemble de logements 1935 75, bvd Blanqui Agence d'architecture HBM Supprimer AULAS - 2007 OuvrirFermerLire et écrire

39 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers if (!empty($_GET)) { if (isset($_GET['suppr'])) { $pFic = fopen ("archi.txt", 'r'); fclose ($pFic); } AULAS - 2007 OuvrirFermerLire et écrire

40 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers if (!empty($_GET)) { if (isset($_GET['suppr'])) { $pFic = fopen ("archi.txt", 'r'); fclose ($pFic); $pFic = fopen ("archi.txt", 'w'); fclose ($pFic); } AULAS - 2007 OuvrirFermerLire et écrire

41 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers if (!empty($_GET)) { if (isset($_GET['suppr'])) { $pFic = fopen ("archi.txt", 'r'); $tab = file("archi.txt"); $chaine =""; fclose ($pFic); $pFic = fopen ("archi.txt", 'w'); fclose ($pFic); } AULAS - 2007 OuvrirFermerLire et écrire

42 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers if (!empty($_GET)) { if (isset($_GET['suppr'])) { $pFic = fopen ("archi.txt", 'r'); $tab = file("archi.txt"); $chaine =""; for ($i = 0; $i<count($tab);$i++) { $chaine.= ($i!=$_GET['suppr']) ? $tab[$i] : ""; } fclose ($pFic); $pFic = fopen ("archi.txt", 'w'); fclose ($pFic); } AULAS - 2007 OuvrirFermerLire et écrire

43 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers if (!empty($_GET)) { if (isset($_GET['suppr'])) { $pFic = fopen ("archi.txt", 'r'); $tab = file("archi.txt"); $chaine =""; for ($i = 0; $i<count($tab);$i++) { $chaine.= ($i!=$_GET['suppr']) ? $tab[$i] : ""; } fclose ($pFic); $pFic = fopen ("archi.txt", 'w'); fputs ($pFic, $chaine); fclose ($pFic); } AULAS - 2007 OuvrirFermerLire et écrire

44 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 2 Les fichiers Faites un formulaire qui permette d'insérer du texte dans le fichier archi.txt. A vous de créer une fonction afficher qui permette d'afficher le contenu du fichier archi.txt. AULAS - 2007 OuvrirFermerLire et écrire

45 Tester un fichierManipuler un fichierManipuler un répertoire Quelques fonctions utiles Les fichiers unlink ("nomFichier") permet de supprimer un fichier rename ("nomFichier", "nouveauNom") permet de renommer copy ("source", "destination") permet de copier un fichier AULAS - 2007 OuvrirFermerLire et écrire

46 Tester un fichierManipuler un fichierManipuler un répertoire Ouvrir, parcourir et fermer un répertoire Les fichiers $pRep = opendir ($rep) permet d'ouvrir un répertoire readdir ($pRep) permet de lire ligne à ligne le contenu du répertoire closedir ($pRep); permet de fermer le répertoire Ex: $rep = "."; $pRep = opendir ($rep); while ($ligne = readdir($pRep)) { print "$ligne "; } closedir ($pRep); AULAS - 2007 Ouvrir/lire/fermerCréer et supprimerDistinguer répertoire et fichier

47 Tester un fichierManipuler un fichierManipuler un répertoire Distinguer un fichier d'un répertoire Les fichiers Lorsqu'on parcoure une arborescence, il est important de distinguer fichiers et répertoires, les seconds étant susceptibles de contenir encore d'autres fichiers. Les fonctions is_dir ("nomFichier") et is_file ("nomFichier") testent s'il s'agit d'un répertoire ou d'un fichier. Ex: $rep = "."; $pRep = opendir ($rep); while ($ligne = readdir($pRep)) { $id = (is_dir($ligne)) ?"Répertoire":"Fichier" ; print "$id : $ligne "; } closedir ($pRep); AULAS - 2007 Ouvrir/lire/fermerCréer et supprimerDistinguer répertoire et fichier

48 Tester un fichierManipuler un fichierManipuler un répertoire Créer et supprimer un répertoire Les fichiers mkdir (nomRépertoire, permissions (en octal)) créé un répertoire et lui définit les droits d'accès en octal, selon le modèle UNIX. Ex : mkdir ("desaix", 0777); //Selon le modèle pgu rmdir (nomRépertoire) supprime un répertoire s'il est vide. chdir (nomRépertoire) positionne dans nomRépertoire. AULAS - 2007 Ouvrir/lire/fermerCréer et supprimerDistinguer répertoire et fichier

49 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 3 Les fichiers Créez une dizaine de répertoire imbriqués les uns dans les autres. Puis effacez les. AULAS - 2007 Ouvrir/lire/fermerCréer et supprimerDistinguer répertoire et fichier

50 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 3 Les fichiers Créez une dizaine de répertoire imbriqués les uns dans les autres. Puis effacez les. for ($i=0;$i<10;$i++) { mkdir("repertoire", 0777); chdir("repertoire"); } AULAS - 2007 Ouvrir/lire/fermerCréer et supprimerDistinguer répertoire et fichier

51 Tester un fichierManipuler un fichierManipuler un répertoire Exercice 3 Les fichiers Créez une dizaine de répertoire imbriqués les uns dans les autres. Puis effacez les. for ($i=0;$i<10;$i++) { mkdir("repertoire", 0777); chdir("repertoire"); } for ($i=0;$i<10;$i++) { chdir(".."); rmdir("repertoire"); } AULAS - 2007 Ouvrir/lire/fermerCréer et supprimerDistinguer répertoire et fichier


Télécharger ppt "Tester un fichierManipuler un fichierManipuler un répertoire Les données disponibles Les fichiers On peut obtenir sur un fichier toutes les informations."

Présentations similaires


Annonces Google