Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMathilde Hugues Modifié depuis plus de 9 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.