Memformat Bait dengan Ketepatan
Dalam pelbagai senario, adalah perlu untuk memformatkan nilai bait ke dalam unit yang boleh dibaca manusia seperti kilobait, megabait, dan gigabait. Contohnya, memaparkan saiz fail pada halaman web memerlukan pemformatan bait kepada unit yang sesuai.
Penyelesaian: Menggunakan Fungsi Format
Satu penyelesaian yang berkesan ialah menggunakan fungsi pemformatan yang mengambil bait sebagai input dan mengembalikan rentetan yang diformat. Berikut ialah contoh fungsi PHP yang mencapai ini:
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]; }
Penjelasan
Fungsi ini mengambil dua parameter:
Fungsi menggunakan tatasusunan $units untuk mewakili unit (bait, kilobait, megabait, gigabait dan terabait). Ia mengira kuasa $pow yang mewakili unit yang sesuai dengan membahagikan logaritma $bait dengan logaritma 1024. Kuasa maksimum dihadkan pada unit tertinggi dalam tatasusunan.
Fungsi kemudian membahagikan nilai bait dengan kuasa yang sesuai untuk menukarkannya kepada unit yang dikehendaki. Akhir sekali, ia membundarkan nilai kepada ketepatan yang ditentukan dan menambahkan unit yang sepadan daripada tatasusunan $units.
Sebagai contoh, jika $bytes ialah 5,222,937, fungsi akan memformatkannya sebagai "5.01 MB".
Atas ialah kandungan terperinci Bagaimana untuk Memformat Bait menjadi Unit Boleh Dibaca Manusia dengan Ketepatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!