PHP SplFileInfo : Obtenir les informations et écrire dans un fichier

Mis à jour il y a 2 mois

Wilo Ahadi

Auteur

Wilo Ahadi

Technologies

Découvrez la technique simple pour obtenir les propriétés d’un fichier (nom, extension, chemin, type, taille, date de modification) et le manipuler

La classe SplFileInfo

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 :

  • Le nom de base du fichier
  • La date de modification
  • Le chemin avec ou sans le nom du fichier
  • Le type du fichier, son extension, sa taille
  • Le propriétaire (créateur) du fichier
  • Savoir si le fichier peut être lu (readable) ou édité (writable)
  • Les droits d’accès au fichier
  • Le contenu du fichier
  • ...

Exemples

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 :

1. Obtenir les informations d’un fichier

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>


2. Ecrire dans un fichier

À 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");
}

?>


Wilo Ahadi
Wilo Ahadi, l'auteur

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