1 / 51

Les fichiers

Les fichiers. Tester un fichier. Manipuler un fichier. Manipuler un répertoire. Existence. Type. Taille. Accessibilité. Dates. Les données disponibles. On peut obtenir sur un fichier toutes les informations visibles dans une fenêtre Web de ce type :. AULAS - 2007. Les fichiers.

ludlow
Download Presentation

Les fichiers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Existence Type Taille Accessibilité Dates Les données disponibles On peut obtenir sur un fichier toutes les informations visibles dans une fenêtre Web de ce type : AULAS - 2007

  2. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Existence Type Taille Accessibilité Dates Récapitulatif : AULAS - 2007

  3. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Existence Type Taille Accessibilité Dates Exercice 1 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

  4. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Existence Type Taille Accessibilité Dates Exercice 1 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 "<I>$fic</I> est un fichier.<BR>"; print "$fic pèse ".filesize($fic).".<BR>"; } } infoFichier("archi.txt"); AULAS - 2007

  5. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Existence Type Taille Accessibilité Dates Exercice 1 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

  6. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Existence Type Taille Accessibilité Dates La fonction date ("format", date_unix) 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

  7. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Existence Type Taille Accessibilité Dates Exercice 1 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 "<I>$fic</I> est un fichier.<BR>"; print "$fic pèse ".filesize($fic).".<BR>"; } } } infoFichier("archi.txt"); AULAS - 2007

  8. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Existence Type Taille Accessibilité Dates Exercice 1 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 "<I>$fic</I> est un fichier.<BR>"; print "$fic pèse ".filesize($fic).".<BR>"; print "$fic a été créé le ".date("d/m/y", filectime($fic)).".<BR>"; } } } infoFichier("archi.txt"); AULAS - 2007

  9. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer include() et require() 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

  10. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Procédure pour manipuler un fichier 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

  11. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Ouvrir un fichier avec fopen ("nomFic.txt", mode) 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

  12. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Lire 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

  13. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Lire 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<BR>"; } AULAS - 2007

  14. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Lire 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<BR>"; } AULAS - 2007

  15. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Lire 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<BR>"; // Le résultat s'appelle un acrostiche. } AULAS - 2007

  16. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Lire vite fait 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<BR>"; AULAS - 2007

  17. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Lire vite fait 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

  18. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Lire vite fait 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<BR>"; } print "<BR>"; } AULAS - 2007

  19. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Ecrire 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

  20. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Fermer 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

  21. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  22. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  23. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  24. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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 "<TABLE BORDER=\"1\">"; print "</TABLE>"; } AULAS - 2007

  25. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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 "<TABLE BORDER=\"1\">"; foreach ($tab as $val) { } print "</TABLE>"; } AULAS - 2007

  26. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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 "<TABLE BORDER=\"1\">"; foreach ($tab as $val) { print "<TR>"; } print "</TABLE>"; } AULAS - 2007

  27. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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 "<TABLE BORDER=\"1\">"; foreach ($tab as $val) { print "<TR>"; $sstab = explode($separateur, $val); } print "</TABLE>"; } AULAS - 2007

  28. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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 "<TABLE BORDER=\"1\">"; foreach ($tab as $val) { print "<TR>"; $sstab = explode($separateur, $val); foreach ($sstab as $ssval) { print "<TD>$ssval"; } } print "</TABLE>"; } AULAS - 2007

  29. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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. <HTML> <BODY> <?php afficher("archi.txt", " : ") ?> </BODY> </HTML> AULAS - 2007

  30. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  31. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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. <FORM action="<?=$_SERVER['PHP_SELF']?>" method="GET"> Type de batiment : <INPUT type="text" name="batiment" size="20"><BR> Date du batiment : <INPUT type="text" name="date" size="20"><BR> Adresse du batiment : <INPUT type="text" name="adresse" size="20"><BR> Auteur(s) du batiment : <INPUT type="text" name="auteur" size="20"><BR> <INPUT type="submit" value="Inserer"><BR><BR> AULAS - 2007

  32. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  33. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  34. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  35. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  36. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 Il ne vous reste plus qu'à donner la possibilité à votre utilisateur de supprimer des enregistrements. Pensez qu'un lien de type: <A href="mapage.php?suppr=2">Supprimer</A> 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

  37. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 function afficher($fichier, $separateur){ $tab = file($fichier); print "<TABLE BORDER=\"1\">"; for ($i = 0; $i<count($tab);$i++) { print "<TR>"; $sstab = explode($separateur, $tab[$i]); foreach ($sstab as $ssval) print "<TD>$ssval"; print "<TD><A href=\"" .$_SERVER['PHP_SELF']. "?suppr=" .$i. "\">Supprimer</A>"; } print "</TABLE>"; } AULAS - 2007

  38. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 <TR> <TD>Garde-meuble du mobilier national <TD>1934 <TD>1, rue Berbier du Mets <TD>Auguste PERRET <TD><A href="/fic.php?suppr=1">Supprimer</A> <TR> <TD>Ensemble de logements <TD>1935 <TD>75, bvd Blanqui <TD>Agence d'architecture HBM <TD><A href="/fic.php?suppr=2">Supprimer</A> AULAS - 2007

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

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

  41. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  42. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  43. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

  44. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir Lire et écrire Fermer Exercice 2 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

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

  46. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir/lire/fermer Distinguer répertoire et fichier Créer et supprimer Ouvrir, parcourir et fermer un répertoire $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<BR>"; } closedir ($pRep); AULAS - 2007

  47. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir/lire/fermer Distinguer répertoire et fichier Créer et supprimer Distinguer un fichier d'un répertoire 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<BR>"; } closedir ($pRep); AULAS - 2007

  48. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir/lire/fermer Distinguer répertoire et fichier Créer et supprimer Créer et supprimer un répertoire 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

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

  50. Les fichiers Tester un fichier Manipuler un fichier Manipuler un répertoire Ouvrir/lire/fermer Distinguer répertoire et fichier Créer et supprimer Exercice 3 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

More Related