Archives Wild Code School
PHP Avancé

Manipuler les fichiers avec PHP

Quête 14 sur 19 · 4 images archivées

Aujourd'hui, dans cette nouvelle quête, tu vas voir comment manipuler les fichiers avec PHP.

Qu'il s'agisse de simples fichiers textes (txt, csv, ...), d'images ou tous autres documents (pdf, etc.), tu vas voir que, tout ce que tu peux faire en ligne de commande pour jouer avec tes fichiers, PHP est capable de le faire sur son serveur.

Tu te demandes peut-être quel est l’intérêt de jongler avec des fichiers en PHP ? Eh bien il arrive que parfois, certaines données d'un site internet soient directement stockées dans des fichiers textes. Tu peux également être amené à développer une application de gestion de bibliothèque de documents ou de photos. Tu peux trouver plein d'autres raisons qui te poussent à manipuler des fichiers. Mais cessons de parlementer et passons à l'action !

Objectifs

  • Ouvrir et lire un fichier déjà existant,
  • Créer et écrire dans un nouveau fichier,
  • Déplacer, copier et supprimer un fichier.

Lire et modifier le contenu d'un fichier texte

Pour lire un fichier, il y a plusieurs manières de procéder, en fonction du type de fichier et de ce que l'on souhaite faire du contenu.

↗
PHP file_get_contents

Si tu souhaites uniquement récupérer le contenu d'un fichier texte, cette méthode sera celle à retenir.

w3schools.com
↗
PHP Open File - fopen

En revanche, si tu veux une gestion un peu plus poussée de la lecture d'un fichier, cette méthode est la bonne.

w3schools.com
↗
Difference between file, file_get_contents, and fopen in PHP

Si tu veux savoir ce qui différencie concrètement les deux précédentes méthodes.

stackoverflow.com
↗
↗
How to parse XML with PHP

Il se peut aussi que tu sois obligé de récupérer des informations depuis un fichier .xml.

blog.teamtreehouse.com

Copier, déplacer des fichiers

Mais non, tu vas voir, c'est assez simple.

Pour copier un fichier, il faut faire appel à la fonction copy :

shell
<?php

    copy ($source, $destination)

En fonction de ce que tu passes comme valeur à $destination, tu peux copier le fichier dans un autre répertoire.

Pour ce qui est de déplacer un fichier, ne cherche pas la méthode move, tu perdrais ton temps. C'est grâce à rename que tu peux déplacer un élément.

shell
<?php

    rename( $oldname , $newname );

Soit $oldname et $newname renvoient au même répertoire et, dans ce cas-là, tu renommes juste le fichier, soit ils correspondent à des répertoires différents et le fichier est alors déplacé.

↗
Copie un fichier
php.net
↗
Renomme un fichier ou un dossier
php.net

Challenge

Rassembler les preuves

À partir de tout ce que tu as pu lire et voir ci-dessus, tu dois recréer un gestionnaire de fichiers. Pour te simplifier la vie, tu dois récupérer le template à cette adresse : template "FBI Archives"

Ressources

Critères de validation

  • L'application permet de :
  • Lister dynamiquement les répertoires et fichiers contenus dans /files,
  • Supprimer un fichier ou un répertoire,
  • Éditer un fichier texte (.txt/.html),
  • L'ensemble de ton code est disponible sur un dépot Github.