1 / 13

Programmation Internet en PHP SIL module M12

Programmation Internet en PHP SIL module M12. Jean-Michel Ilié IUT Paris 5 - département informatique. Partie III : SGF et Gestion des fichiers. PLAN du cours. Introduction Gestion des fichiers Gestion des répertoires Téléchargement de fichiers Base de données fichiers.

hansel
Download Presentation

Programmation Internet en PHP SIL module M12

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. Programmation Internet en PHP SIL module M12 Jean-Michel Ilié IUT Paris 5 - département informatique Partie III : SGF et Gestion des fichiers

  2. PLAN du cours • Introduction • Gestion des fichiers • Gestion des répertoires • Téléchargement de fichiers • Base de données fichiers

  3. Intérêts des traitements fichiers côtés serveur • Installation de site automatisée • fichiers • système de répertoires • gestion de la sécurité • Partage de fichiers - téléchargement (upload) • Administration du site à distance

  4. Gestion des fichiers • Ouverture et fermeture • Afficher des fichiers • Lire et Ecrire • Naviguer dans le fichier • Copier, supprimer, déplacer • Gestion des répertoires • Attributs des fichiers

  5. Gestion des fichiers Ouvrir, afficher, fermer • int $ff =fopen ('nom_fic', str_mode[b]); //str_mode : a : ajout; a+ : ajout/lecture; //r:lecture; r+ : lecture/écriture débutFic; //w: remplacement; w+: remplacement/lecture.. //Rajouter 'b' si fichier binaire (sous windows) //ff= 0 si échec sinon le pointeur du fichier • $bool= fclose ($ff); • $bool=fpassthru($ff); //envoie le (reste du) fichier sur la sortie standard (vers le navigateur) <?php if (!$ff=fopen("img.gif", "rb")) echo "affichage de l'image impossible"; else fpassthru($ff); ?>

  6. Gestion des fichiers • $c= getc ($ff); • $txt= fread($ff, int_lg); //strlen(txt)=lg • $txt= fgets($ff, int_lg+1); //lecture de lignes • $txt= fgetss($ff, int_lg); //similaire, sans rendre les balises HTML, PHP • $bool=feof($ff); //pour tester la fin de fichier • $tab=file($ff); //lecture et insertion des lignes //dans le tableau : tab[i]= la ième ligne • $bool= fputs ($ff, str, [int_lg]); //str= chaîne à écrire • $bool = fwrite ($ff, str, [int_lg]); • $bool = rewind ($ff); //réinitialise le pointeur • $bool = fseek ($ff, int_decalage); //décalage absolu en octets : -1 si échec et 0 si réussite Lire, Naviguer, Ecrire <?php... $tab = file($ff); for ($i=0; $i<count($tab), $i++) echo "ligne $i = $tab[$i]"; ?>

  7. Gestion des fichiers Copier, déplacer, détruire, existence • $bool = copy ("src", "dest"); • $bool = rename ("src", "dest"); • $bool = unlink ("fic"); //supprime • $bool = file_exists ("fic"); //test <?php... if (! file_exists($fichier)) {echo 'rien à copier'; exit ;} if (! copy ($fichier, "c: .. /image/")) {echo 'pb de copie'; exit ;} ?> //alternative : (@ évite les exceptions) @file_exists($fichier) or die ('rien à copier'); @copy($fichier, "c: .. /image/") or die ('erreur copie');

  8. Gestion des répertoires • $bool = chdir ("nom_rep"); //positionne le répertoire courant • $bool = mkdir ("nom_rep", int_mode); //mode : permission d'accès unix (Windows l'ignore) • $bool = rmdir ("nom_rep"); //si vide, détruit le répertoire • $dd = opendir ("nom_rep"); //ouverture (par défaut le répertoire courant) • $str = readdir ($dd); //lit la prochaine entrée du répertoire • rewinddir ($dd); //se place sur la 1er entrée du répertoire • closedir ($dd); //ferme Ouvrir, afficher, positionner créer, détruire <?php... if (!mkdir ("/temp", 0700) ) echo "creation imposible";?> <?php $rep=opendir("../") while ($nom_fich =readdir ("$rep")) echo "$nom_fic"; chdir ("/temp"); ?>

  9. Téléchargement(upload) Formulaire de téléchargement <FORM action="upload.php" method="POST" enctype="multipart/form-data"> Envoyer ce fichier : <input type="file" name="userfile"><BR> <input type= "submit"><BR> </FORM> • Variables créées sur le serveur : • $_FILES['userfile']['name'] //intitulé initial • $_FILES['userfile']['size'] //taille • $_FILES['userfile']['type'] //type MIME • $_FILES['userfile']['tmp_name'] // fichier temporaire créé par le téléchargement

  10. Téléchargement(upload) <html><form action="upload.php" method="post" enctype="multipart/form-data"> Envoyer ce fichier : <INPUT type= "file" name="userfile"><BR> <INPUT type="submit"><BR> </form></html> parcours du SGF client Téléchargement puis copie <html> Fichier soumis :<BR><BR> Nom : <? echo$_FILES['userfile']['tmp_name']; ?><BR> Nom temporaire : <? echo $_FILES['userfile']['name']; ?><BR> Taille : <? echo $_FILES['userfile']['size']; ?><BR> Type : <? echo $_FILES['userfile']['type']; ?><BR> <?$dest=".\\upload.txt"; //!!!Barres obliques inverses //!!! à Doubler. if (copy($_FILES['userfile']['tmp_name'], $dest)) echo("<B>copie réussie.</B>"); else echo("<B>echec de copie.</B>"); unlink($_FILES['userfile']['tmp_name']); ?></html> // Supprimer le fichier temporaire

  11. Bases de données en fichiers(BD non relationnelle) Table à deux entrées Identifiant / Valeur (équivalent dictionnaire) $db= dba_open ($dbpath, "acces", $dbtype, [int_model]); //chemin de la base : $dbpath (ex : database.db) //acces : 'r', 'w', 'c' (création) ou 'n' (écraser les données existantes) //' type $dbtype de gestion : 'gdbm' (GNU unix), db2, 'cdb' (qmail) //rend false si échec $id= dba_firstkey($db); $id= dba_nextkey($db); //rend false en fin dba_fetch($id, $db); //rech par $id dba_delete ($id, $db); dba_replace ($id, 'valeur', $db); dba_sync($db); //réalisation effective des modifications dans la base dba_close($db); Fct sup : la sérialisation des entrées $ch= serialize($tab); // de tableau en chaîne $tab= deserialize($ch); // de chaîne en tableau

  12. Exercices • Gestion des fichiers utilisateurs • Administration des fichiers et répertoires du serveur

  13. ApplicationGestion d'un carnet d'adresse Table carnetAdresse (base PHP) NOM EMAIL (PRIMARY KEY) VILLE DESCRIPTION TELEPHONE $creat = "CREATE TABLE $tab ( NOM VARCHAR(255), EMAIL VARCHAR(255), VILLE VARCHAR(255), DESCRIPTION VARCHAR(255), TELEPHONE VARCHAR(255), ID INT PRIMARY KEY AUTO_INCREMENT )"; • Actions sur la table • Ajouter un enregistrement • Rechercher un enregistrement • modifier • Détruire

More Related