Mis à jour il y a 5 mois
PHP offre des nombreuses fonctions sur les systèmes de fichiers mais Depuis sa version 5.1.2, il nous propose la classe SplFileInfo qui fournit une interface de haut niveau avec les informations d’un fichier et les méthodes pour le manipuler (ouvrir, écrire, …)
De cette classe, nous pouvons obtenir les informations suivantes :
Nous allons voir pratiquement par deux exemples comment utiliser SplFileInfo pour obtenir les informations d’un fichier et comment ouvrir un fichier pour y écrire :
Pour accéder aux informations d’un fichier, il faut construire (constructeur) un nouvel objet SplFileInfo en indiquant le chemin vers le fichier à traiter. C’est à partir de cet objet qu’on peut ensuite appeler les différentes méthodes :
<?php
// Création d'un objet SplFileInfo sur le fichier courant
$fichier = new SplFIleinfo(__FILE__);
// On vérifier si ce fichier est un véritable fichier
if (!$fichier->isFile()) {
die('Fichier requis pour poursuivre');
}
?><!DOCTYPE html>
<html>
<head>
<title>Les informations du fichier courant</title>
<meta charset="utf-8">
</head>
<body>
<p>Nom du fichier : <?= $fichier->getFilename() ?></p>
<p>Extension : <?= $fichier->getExtension() ?></p>
<p>Type : <?= $fichier->getType() ?></p>
<p>Taille : <?= $fichier->getSize() ?> octets</p>
<p>Chemin absolu : <?= $fichier->getRealpath() ?></p>
<p>Date de modification : <?= date('d/m/Y', $fichier->getCTime()) ?></p>
</body>
</html>
À partir d’un objet SplFileInfo, nous pouvons ouvrir un fichier (obtenir un objet SplFIleObject) avec les différents modes (voir la fonction fopen() pour les modes) pour avoir accès aux méthodes supplémentaires de manipulation de fichier :
<?php
// Création d'un objet SplFileInfo sur le fichier "test.txt"
$fichier = new SplFIleinfo("test.txt");
// On ouvre le fichier en écriture seule, on le crée s'il n'existe pas
$fichier_content = $fichier->openFile("w");
// On vérifier si on peut écrire dans le fichier
if ($fichier->isWritable()) {
// On écrit "We love PHP" dans le fichier
$fichier_content->fwrite("We love PHP");
}
?>
Passionné de l'informatique, je suis spécialiste en techniques des systèmes et réseaux, développeur web et mobile, Infographiste et designer, ... J'aime partager mon expérience en formant sur Akili School
Voir mon profil Suivre