Maison > Article > développement back-end > Comment formater des octets en unités lisibles par l'homme avec précision ?
Formatage des octets avec précision
Dans divers scénarios, il devient nécessaire de formater les valeurs des octets en unités lisibles par l'homme telles que les kilo-octets, les mégaoctets, et des gigaoctets. Par exemple, l'affichage de la taille des fichiers sur des pages Web nécessite le formatage des octets dans l'unité appropriée.
Solution : utiliser une fonction de formatage
Une solution efficace consiste à utiliser une fonction de formatage qui prend des octets en entrée et renvoie la chaîne formatée. Voici un exemple de fonction PHP qui permet d'obtenir cela :
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]; }
Explication
Cette fonction prend deux paramètres :
La fonction utilise un tableau $units pour représenter les unités (octets, kilo-octets, mégaoctets, gigaoctets et téraoctets). Elle calcule la puissance $pow représentant l'unité appropriée en divisant le logarithme de $bytes par le logarithme de 1024. La puissance maximale est plafonnée à l'unité la plus élevée du tableau.
La fonction divise ensuite la valeur de l'octet par la puissance appropriée pour le convertir à l’unité souhaitée. Enfin, il arrondit la valeur à la précision spécifiée et ajoute l'unité correspondante du tableau $units.
Par exemple, si $bytes vaut 5 222 937, la fonction le formatera comme « 5,01 Mo ».
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!