php acc s au syst me de fichiers n.
Skip this Video
Loading SlideShow in 5 Seconds..
PHP Accès au système de fichiers PowerPoint Presentation
Download Presentation
PHP Accès au système de fichiers

Loading in 2 Seconds...

  share
play fullscreen
1 / 27
Download Presentation

PHP Accès au système de fichiers - PowerPoint PPT Presentation

zeke
78 Views
Download Presentation

PHP Accès au système de fichiers

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. PHPAccès au système de fichiers Jérôme CUTRONA jerome.cutrona@univ-reims.fr Programmation Web 2012-2013

  2. Préambule • L'accès au système de fichiers en PHP est réalisé par le moteur PHP. Plus précisément, c'est le serveur Web qui accède aux fichiers. Ce sont donc les droits d'accès de l'utilisateur "web" qui sont mis en jeu avec toutes les limitations que cela comporte ! • Les pseudo-types présentés dans les diapositives suivantes sont donnés à titre informatif. • Toutes les fonctions travaillent à partir du répertoire courant (par défaut, celui du script) • Les fonctions présentées retournent souvent false en cas d'échec et affichent parfois des avertissements dans ce cas Programmation Web 2012-2013

  3. Fonctions "commande shell" • chmod : modifier les droits d'accès • chown : modifier le propriétaire • chgrp : modifier le groupe • mkdir : créer un répertoire • rmdir : détruire un répertoire • copy : copier un fichier • basename : donner le nom d'un fichier • dirname : donner le chemin d'un fichier • link : créer un lien physique • symlink : créer un lien symbolique • unlink : détruire un lien • touch : changer la date de modification Programmation Web 2012-2013

  4. Fonctions "commande shell" boolchmod ( string filename, intmode ) remplace le mode de filename par le mode mode ex : chmod("foo.txt", 0644) ; boolchown ( stringfilename, mixeduser ) change l’utilisateur propriétaire courant du fichier filename en user ex : chown("foo.txt", "cutrona") ; boolchgrp ( string filename, mixed group ) remplace le groupe propriétaire courant du fichier filename par group ex : chgrp("foo.txt", "prof") ; Programmation Web 2012-2013

  5. Fonctions "commande shell" bool mkdir (string pathname [, int mode [, bool recursive ]]) crée un répertoire pathname avec le mode modede façonrécursive ex : mkdir("rep12", 0755) ; bool rmdir ( string dirname ) efface le répertoire dont le chemin est dirname. Le répertoire doit être vide ex : rmdir("rep12") ; bool copy ( string source, string dest ) effectue une copie du fichier source vers le fichier dest ex : copy("fic.txt", "copie_fic.txt") ; Programmation Web 2012-2013

  6. Fonctions "commande shell" string basename ( string path [, string suffix] ) extrait le nom du fichier (au sens large) dans le chemin path. Si suffixest fourni, il sera supprimé dans le nom du fichier ex : basename("/home/prof/cutrona/public_html") ; public_html string dirname ( string path ) donne le chemin du fichier (au sens large) contenu dans path ex : dirname("/home/prof/cutrona/public_html") ; /home/prof/cutrona Programmation Web 2012-2013

  7. Fonctions "commande shell" bool link ( string target, string link ) crée un lien de nom link vers le fichier destination existant target ex : link("foo.txt", "bob") ; bool symlink ( string target, string link ) crée un lien symbolique de nom link vers le fichier destination existant target ex : symlink("foo.txt", "bob") ; bool unlink ( string filename )efface le fichier filename ex : unlink("foo.txt") ; Programmation Web 2012-2013

  8. Fonctions "commande shell" bool touch ( string filename [, int time [, int atime]] ) tente de forcer la date de modification du fichier désigné par le paramètre filename à la date de spécifiée par le paramètre time. Le troisième paramètre atime est utilisé comme date de dernier accès. Si le fichier n'existe pas, PHP tente de le créertime et atime sont des timestamp UNIX (nombre de secondes depuis le 1er Janvier 1970 00:00:00 GMT) int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] ) crée un timestamp UNIX correspondant aux paramètres Programmation Web 2012-2013

  9. Fonctions informatives • file_exists : fichier existe ? • is_dir : est un répertoire ? • is_file : est un fichier régulier ? • is_link : est un lien symbolique ? • filetype : type de fichier • is_readable : est lisible ? • is_executable : est exécutable ? • is_writ[e]able : peut être modifié ? Programmation Web 2012-2013

  10. Fonctions informatives • disk_free_space : espace disponible • disk_total_space : espace occupé • filesize : taille du fichier • fileatime : date d'accès • filectime : date de changement • filemtime : date de modification • fileowner : propriétaire • filegroup : groupe • fileperms : droits d'accès Programmation Web 2012-2013

  11. Fonctions informatives bool file_exists ( string filename ) retourne true si le fichier filename existe, et false sinon ex : file_exists("foo.txt") ; bool is_dir ( string filename ) retourne true si filename existe et est un dossier ex : is_dir("progweb1A") ; bool is_file ( string filename ) retourne true si filename existe et est un fichier régulier ex : is_file("index.php") ; Programmation Web 2012-2013

  12. Fonctions informatives bool is_link ( string filename ) retourne true si filename existe et est un lien symbolique ex : is_link("progweb1A/Cours") ; string filetype ( string filename ) renvoie le type du fichier filename. Réponses possibles : • fifo : file UNIX • char : fichier spécial de type caractère • dir : répertoire • block : fichier spécial de type bloc • link : lien symbolique • file : fichier régulier • unknown : inconnu Programmation Web 2012-2013

  13. Fonctions informatives bool is_readable ( string filename ) retourne true si le fichier ou le dossier filename existe et est accessible en lecture. ex : is_readable("foo.txt") ; bool is_writ[e]able ( string filename ) retourne true si filename existe et est accessible en écriture. ex : is_writable("foo.txt") ; bool is_executable ( string filename ) retourne true si filename existe et est exécutable. ex : is_executable("index.php") ; Programmation Web 2012-2013

  14. Fonctions informatives float disk_free_space ( string directory ) retourne le nombre d'octets disponibles sur le disque contenant le dossier directory ex : disk_free_space("/home/prof/cutrona/public_html") ; float disk_total_space ( string directory ) lit récursivement toutes les tailles du dossier directory et retourne la somme ex : disk_total_space("/home/prof/cutrona/public_html") ; int filesize ( string filename ) renvoie la taille du fichier filename ex : filesize("index.php") ; Programmation Web 2012-2013

  15. Fonctions informatives int fileatime ( string filename ) renvoie la date de dernier accès aucontenu de filename ex : fileatime("index.php") ; int filectime ( string filename ) renvoie la date à laquelle les propriétés du fichierfilename ont été changées pour la dernière fois ex : filectime("index.php") ; int filemtime ( string filename ) renvoie la date de dernière modification ducontenu du fichier filename ex : filemtime("index.php") ; Programmation Web 2012-2013

  16. Fonctions informatives int fileowner ( string filename ) renvoie l'uid du propriétaire du fichier filename arrayposix_getpwuid ( intuid ) ex : fileowner("index.php") ; int filegroup ( string filename ) renvoie le gid groupe qui possède le fichier filename array posix_getgrgid ( int gid ) ex : filegroup("index.php") ; int fileperms ( string filename ) renvoie les permissions affectées au fichier filename ex : fileperms("index.php") ; Programmation Web 2012-2013

  17. Fonctions de lecture/écriture • readfile : contenu  sortie std • file_get_contents : contenu  chaîne • file : contenu  tableau • fopen : ouvrir un fichier • fread : lire dans un fichier ouvert • fwrite : écrire dans un fichier ouvert • fseek : se déplacer dans un fichier • ftell : position dans un fichier • fgetc : lire un caractère • fgets : lire une ligne • fclose : fermeture d'un fichier Programmation Web 2012-2013

  18. Fonctions de lecture/écriture Fichier Lecture Curseur Écriture avec remplacement Fichier Curseur Écriture avec destruction Fichier Curseur Écriture avec ajout seul Fichier Curseur Programmation Web 2012-2013

  19. Fonctions de lecture intreadfile ( string filename ) lit le fichier filename et l'envoie sur la sortie standard. retourne le nombre d'octets lus depuis le fichier ex : readfile("index.html") ; string file_get_contents ( string filename) lit le fichier filename et place son contenu dans une chaîne ex : $s = file_get_contents("liste.txt") ; arrayfile ( string filename ) lit le fichier filename et place son contenu dans un tableau dont chaque élément contient une ligne du fichier ex : $t = file("liste.txt") ; Programmation Web 2012-2013

  20. Fonctions de lecture/écriture resource fopen ( string filename, string mode ) crée une ressource nommée, spécifiée par le paramètre filename, sous la forme d'un flux ouvert selon le mode ex : $fp = fopen("index.html", 'r+') ; Programmation Web 2012-2013

  21. Fonctions de lecture/écriture string fread ( resource handle, int length ) lit jusqu'à length octets dans le fichier référencé par handle int fwrite ( resource handle, string string [, int length] ) écrit le contenu de la chaîne string dans le fichier référencé par handle à concurrence de length octets, ou de la taille de la chaîne string boolfclose ( resourcehandle ) ferme le fichierréférencé par handle Programmation Web 2012-2013

  22. Fonctions de lecture/écriture int fseek ( resource handle, int offset [, int whence] ) modifie le curseur de position dans le fichier référencé par handle. La nouvelle position mesurée en octets à partir du début du fichier, est obtenue en additionnant la distance offset à la position whence : • SEEK_SET - Position finale = offset octets. • SEEK_CUR - Position finale = position courante + offset octets. • SEEK_END - Position finale = position fin du fichier + offset. int ftell ( resource handle ) retourne la position courante, en octets, du curseur dans le fichier référencé par handle Programmation Web 2012-2013

  23. Fonctions de lecture/écriture string fgetc ( resource handle ) retourne une chaîne contenant un seul caractère, lu depuis le fichier référencé par handle string fgets ( resource handle [, int length] ) retourne une ligne du fichier référencé par handle jusqu'à la longueur maximale length - 1 octets Programmation Web 2012-2013

  24. Exemple de boucle de lecture // Tentative d'ouverture du fichier if($h= @fopen("dummy.txt", "r")){ // Lecture du fichier ligne à ligne while(($ligne=fgets($h))!==false){ // Utilisation de $ligne } // Fermeture fclose($h) ; } Programmation Web 2012-2013

  25. Fonctions de recherche • fnmatch : contrôle de motif • glob : recherche de chemins Programmation Web 2012-2013

  26. Contrôle de motif bool fnmatch ( string mo , string ch [, int flag] ) vérifie si la chaîne ch correspond au motif mo. fnmatch utilise une forme simple d'expressions régulières équivalentes à celles utilisés en Shell UNIX. ex : fnmatch("*gr[ae]y", $color) Programmation Web 2012-2013

  27. Recherche de chemins array glob ( string mo [, int flag] ) recherche tous les chemins correspondant au motif mo. retourne un tableau contenant les noms des chemins trouvés valeurs possibles de flag : • GLOB_NOSORT– Pas de tri • GLOB_NOESCAPE– Pas de protection des méta-caractère avec un anti-slash • GLOB_BRACE– Remplace {a,b,c} par 'a', 'b' ou 'c' • GLOB_ONLYDIR– Ne retourne que les dossiers Programmation Web 2012-2013