Si le stockage et l'accès à des données se fait très souvent
par l'intermédiaire de bases de données, le recours à de simples
fichiers est parfois utile, voire nécessaire.
Comme à son habitude, PHP fournit un grand nombre de
fonctions pour traiter les fichiers.
Pour les exemples, nous utiliserons le dossier test_fichiers
avec le contenu et l'arborescence ci-contre.
Ce dossier se trouve dans le dossier test du tutoriel. Vous pouvez
voir son contenu avec le bouton
dans la
barre de menu du tutoriel.
Si vous ne voyez pas ce dossier, ou si vous voulez le ré-initialiser
utilisez
ce script.
Existence d'un fichier
Nous commencerons par déterminer si un fichier existe avec la
fonction file_exists().
La fonction file_exists()
ne différencie pas les fichiers des dossiers. Si nous
l'utilisons avec un nom de dossier, elle renverra aussi TRUE si le dossier existe, FALSE sinon. Notre dossier test contient un
sous-dossier images et un sous-dossier
export. Si nous passons ces noms comme
argument à file_exists(),
le résultat sera TRUE.
Dossier ou fichier ?
Heureusement, des fonctions nous indiquent quel est le type
d'un fichier, et en particulier : is_dir()
et is_file().
Chemin d'accès
Nous pouvons obtenir le chemin d'accès complet et absolu d'un
fichier avec la fonction realpath().
Cette fonction ne vérifie pas que le fichier existe. Elle renvoie un
chemin d'accès à partir de la racine du disque dur du serveur.
- Si le nom de fichier passé en argument commence par un / ou
un \, la fonction ne calcule pas le chemin car elle considère que
l'on se trouve à la racine du disque.
- Si le nom de fichier passé en argument contient des liens
symboliques comme ./ ou ../, la fonction les résoud.
La fonction dirname()
renvoie la partie dossiers d'un chemin d'accès. La fonction baseName()
renvoie le nom de fichier d'un chemin d'accès.
La fonction pathinfo()
renvoie des informations sur un chemin sous la forme d'un tableau
associatif de trois clés : dirname, baseName et extension.