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

Mis à jour il y a 3 ans

Un tutoriel pour obtenir les propriétés d’un fichier (nom, extension, chemin, taille, date de modification, …) et écrire dans un fichier avec la classe PHP SplFileInfo

Wilo Ahadi

Auteur

Wilo A.

Technologies

PHP, HTML
Voir aussi Un tutoriel pour enregistrer les informations de session des utilisateurs dans la base de données au lieu des fichiers. En savoir plus

La classe SplFileInfo

PHP offre des nombreuses fonctions sur les systèmes de fichiers. Et Depuis sa version 5.1.2, il nous propose la classe SplFileInfo qui fournit une interface de haut niveau avec les informations de fichiers et les méthodes pour les manipuler (ouvrir, écrire, …)

La classe SplFileInfo nous permet d'obtenir les informations suivantes d'un fichier :

  • Le nom de base
  • 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)
  • Savoir si le fichier peut être lu (readable) ou édité (writable)
  • Les droits d’accès au fichier
  • Le contenu du fichier
  • ...

Prenons deux exemples pour voir comment utiliser SplFileInfo pour obtenir les informations d’un fichier ou y écrire :

Exemple 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 que nous pouvons 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>

Exemple 2 : Ecrire dans un fichier

À partir d’un objet SplFileInfo, nous pouvons ouvrir un fichier en indiquant le mode d'ouverture (voir la fonction fopen() pour les modes). Cela nous donne un objet SplFIleObject à partir duquel nous avons accès aux méthodes 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");
}

?>

Portez-vous bien ! 😎

Cette publication vous a plu ?
Partagez-la avec vos ami(e)s sur les réseaux sociaux.

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 la plateforme Akili School

Voir profil

Commentaires