Soutenez-nous

FAQ PHPConsultez toutes les FAQ

Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 29 juillet 2013 

 
OuvrirSommaireFichiers et dossiersPropriétés des fichiers
 
Sélectionnez
$file = "monfichier.txt";
if(file_exists($file)) {
    echo round(filesize($file)/1024);
}

La fonction file_exists() teste l'existence d'un fichier (important avant toute manipulation). La fonction filesize() retourne la taille en octets d'un fichier, FALSE sinon. La fonction round() arrondi un nombre à l'entier le plus proche.

Comme 1 Ko = 1024 octets (en base 2, binaire), on divise la taille par 1024 pour l'avoir en ko.

Mis à jour le 4 août 2008  par Cyberzoide

La fonction filesize() permet d'obtenir le poids d'un fichier local, mais cette fonction ne fonctionne pas sur les fichiers distants.

Il va donc falloir passer par la fonction fopen(), si tant est que le support des gestionnaires d'URL ("URL fopen wrapper") soit activé dans le fichier de configuration php.ini.

On va donc ouvrir le fichier, le lire en entier et en compter la taille.

 
Sélectionnez
<?php 
$buffer = '';
if($fd = fopen ("http://www.monsite.com/images/avatar.gif", "r")) {
    while (!feof($fd)) {
        $buffer .= fgets($fd, 4096);
    }
    fclose ($fd);
}
$size = strlen($buffer);
?>
Mis à jour le 4 août 2008  par Cyberzoide

Cette information est envoyée par le navigateur, PHP la récupère dans la variable $_FILES mais elle n'est pas fiable (puisque transmise par le client), l'utiliser serait donc une grave erreur de sécurité.

La fonction mime_content_type() retourne le type MIME d'un fichier en se basant sur les informations présentes dans le fichier magic.mime. Elle est cependant dépréciée au profit de l'extension PECL Fileinfo :

 
Sélectionnez
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic");

echo $finfo->file('image.jpg'); //Affiche image/jpeg 
echo $finfo->file('archive.zip'); //Affiche application/x-zip

$finfo->close();
Mis à jour le 4 août 2008  par Forum PHP

Lien : Comment installer une extension pour PHP ?

fileatime() et filemtime() sont des fonctions qui permettent obtenir de manière précise la date de dernier accès pour l'une et de dernière modification pour l'autre. En cas d'erreur, elles retourneront FALSE.

Affichage de la date à laquelle le fichier a été affiché
Sélectionnez

echo 'Dernier affichage du fichier : ' . date("d M Y",fileatime("test.php")); 
//Affiche Fri Aug 2006, dernière date d'accès au fichier test.
Affichage de la date à laquelle le fichier a été modifié
Sélectionnez

echo 'Dernière modification du fichier : ' . date("d M Y",filemtime("test.php")); 
//Affiche Fri Aug 2006, dernière date de modification du fichier test.

Pour modifier cette date, on utilise la fonction touch() qui tente de forcer la date de modification du fichier désigné à la date de spécifiée.

Tentative de modification de la date du dernier accès à un fichier
Sélectionnez

touch("test.php", time(), mktime(0,0,0,1,20,2006)); //Modifie la date du dernier affichage (accès) au 20 janvier 2006
echo date("d M Y",fileatime("test.php"));  //Affiche 20 Jan 2006
Mis à jour le 4 août 2008  par Forum PHP
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Developpez.com Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.