Image de l'article Afficher et calculer le poids d'un fichier en PHP

Afficher et calculer le poids d'un fichier en PHP

Cette fonction est un portage en PHP de la fonction javascript pour convertir des octets.
La fonction attend 3 paramètres :


function FileGetSize($aPath='', $aShort=true, $aCheckIfFileExist=true){
	if($aCheckIfFileExist && !file_exists($aPath)) return 0;
	$size = filesize($aPath);
	if(empty($size)) return '0 '.($aShort ? 'o':'octets');
	$l = array();
	$l[] = array('name'=>'octets', 'abbr'=>'o', 'size'=>1);
	$l[] = array('name'=>'kilo octets', 'abbr'=>'ko', 'size'=>1024);
	$l[] = array('name'=>'mega octets', 'abbr'=>'Mo', 'size'=>1048576);
	$l[] = array('name'=>'giga octets', 'abbr'=>'Go', 'size'=>1073741824);
	$l[] = array('name'=>'tera octets', 'abbr'=>'To', 'size'=>1099511627776);
	$l[] = array('name'=>'peta octets', 'abbr'=>'Po', 'size'=>1125899906842620);
	foreach($l as $k=>$v){
		if($size<$v['size']){
			return round($size/$l[$k-1]['size'], 2).' '.($aShort ? $l[$k-1]['abbr']:$l[$k-1]['name']);
		}
	}
	$l = end($l);
	return round($size/$l['size'], 2).' '.($aShort ? $l['abbr']:$l['name']);	
}

Vous pouvez la simplifier pour qu'elle ne fasse que la conversion en supprimant les deux premières lignes et le dernier argument.

Si le fichier fait 0 octets la fonction renvoi "0 o" ou "0 octets"
Si le fichier est plus grand que 1024 fois la plus grande unité, elle renvoi la dernière unité de la liste.

Fonctionne sous PHP 4, PHP 5 et PHP 7.

 

Image Viewer