Maison >développement back-end >tutoriel php >Comment convertir la taille des fichiers en octets en formats lisibles par l'homme en PHP ?

Comment convertir la taille des fichiers en octets en formats lisibles par l'homme en PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-27 01:24:10784parcourir

How Do I Convert File Sizes from Bytes to Human-Readable Formats in PHP?

Calcul de la taille des fichiers dans des formats lisibles par l'homme

Déterminer la taille des fichiers en unités significatives telles que les kilo-octets, les mégaoctets ou les gigaoctets est une tâche courante. Lorsque les fichiers sont stockés en octets, une conversion est nécessaire pour un affichage convivial.

Solution

La fonction PHP formatBytes() propose une solution. Voici comment cela fonctionne :

function formatBytes($bytes, $precision = 2) { 
    $units = array('B', 'KB', 'MB', 'GB', 'TB'); 
   
    $bytes = max($bytes, 0); 
    $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); 
    $pow = min($pow, count($units) - 1); 
   
    // Uncomment one of the following alternatives
    // $bytes /= pow(1024, $pow);
    // $bytes /= (1 << (10 * $pow)); 
   
    return round($bytes, $precision) . $units[$pow]; 
} 

Implémentation

  1. Créez un tableau $units contenant les noms des unités (B, KB, MB, etc.).
  2. Calculez la puissance de 1024 pour convertir les octets en caractères appropriés unité.
  3. Divisez $bytes par la puissance calculée pour obtenir la valeur convertie.
  4. Arrondissez le résultat à la précision spécifiée.
  5. Concaténez la valeur formatée avec le nom de l'unité correspondante. .

Exemple

Pour convertir 5445632 octets dans un format convivial avec deux décimales :

echo formatBytes(5445632, 2); // Output: 5.24 MB

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn