Làm cách nào để chuyển đổi kích thước tệp thành MB trong PHP?

Giả sử bạn đang hiển thị kích thước của tệp trong PHP. Rõ ràng là bạn có được kích thước tệp tính bằng Byte bằng cách sử dụng filesize[]

Bạn sẽ không biết kích thước tệp là bao nhiêu nếu bạn đọc nó bằng Byte. Byte hữu ích cho việc truyền tệp trong mạng, nhưng không dành cho mục đích sử dụng của con người. Vì vậy, tốt hơn hết là chuyển đổi nó sang dạng người có thể đọc được

Các khu vực được khoanh tròn hiển thị kích thước được chuyển đổi từ Byte. Ứng dụng – Lobby Downloader

Đây là một hàm đơn giản để chuyển đổi Byte thành KB, MB, GB, TB

function convertToReadableSize[$size]{
  $base = log[$size] / log[1024];
  $suffix = array["", "KB", "MB", "GB", "TB"];
  $f_base = floor[$base];
  return round[pow[1024, $base - floor[$base]], 1] . $suffix[$f_base];
}

Lưu ý rằng KB dành cho Kibibyte. Hệ thống bình thường sử dụng Kilobyte [1000]. Nếu bạn muốn thay đổi thì hãy thay thế tham số được truyền cho log[]

Lưu ý rằng hàm có tối đa TB. Bạn có thể mở rộng nó bằng cách thêm nhiều hơn vào mảng $suffix 

Cách sử dụng

Chỉ cần gọi chức năng

echo convertToReadableSize[1024]; // Outputs '1KB'
echo convertToReadableSize[1024 * 1024]; // Outputs '1MB'
echo convertToReadableSize[filesize["/home/simsu/good.txt"]];

Tôi đã phải sử dụng nó cho ứng dụng quản lý tải xuống mà tôi đã tạo cho Lobby. Bạn có thể xem mã nguồn của ứng dụng "Downloader" tại đây

Đây là hướng dẫn về cách lấy kích thước của tệp bằng PHP. Trong hướng dẫn này, chúng ta sẽ lấy kích thước của tệp theo byte bằng cách sử dụng chức năng kích thước tệp của PHP trước khi chuyển đổi các byte đó thành KB, MB và GB, thân thiện với con người hơn nhiều

Chức năng kích thước tệp của PHP

Hàm kích thước tệp của PHP nhận một tham số. Một tham số chuỗi có tên là $filename, chứa đường dẫn đến tệp

Hãy xem ví dụ sau

//The path to our file.
$file = 'photograph.jpg';

//Get the file size in bytes using PHP's filesize function.
$fileSizeBytes = filesize[$file];

//In my case, the file was 269,708 bytes in size.
var_dump[$fileSizeBytes];

Đoạn mã trên giả định rằng tệp “photograph. jpg” nằm trong cùng thư mục với tập lệnh PHP của chúng tôi

Nếu tệp của chúng tôi nằm trong một thư mục khác có tên là hình ảnh, chúng tôi có thể sử dụng đường dẫn tương đối sau

//A relative path.
$file = '../images/photograph.jpg';

//Get the file size in bytes.
$fileSizeBytes = filesize[$file];

Lưu ý rằng hàm kích thước tệp cũng sẽ chấp nhận đường dẫn tuyệt đối đến tệp

//Using an absolute path.
$file = 'C:\wamp\www\photograph.jpg';

//Get the file size in bytes.
$fileSizeBytes = filesize[$file];

Nếu hàm kích thước tệp được cung cấp một đường dẫn tệp không chính xác, nó sẽ đưa ra cảnh báo sau

"Cảnh báo. Kích thước tập tin[]. stat không thành công cho /path/to/photograph. jpg”

Hàm kích thước tệp của PHP sử dụng lệnh stat cơ bản của hệ thống để lấy kích thước của tệp được đề cập

Lấy kích thước tệp tính bằng KB

Nếu bạn chủ yếu xử lý hình ảnh hoặc các tệp nhỏ khác, bạn có thể muốn chuyển đổi byte thành KB [kilobyte]

Ví dụ

//Relative path to our file.
$file = 'photograph.jpg';

//Get the file size in bytes.
$fileSizeBytes = filesize[$file];

//Convert the bytes into KB.
$fileSizeKB = round[$fileSizeBytes / 1024];

//269,708 bytes divided by 1024 results in 263 KB
var_dump[$fileSizeKB];

Trong đoạn mã trên, chúng tôi đã lấy kích thước của tệp theo byte và sau đó chia kết quả cho 1024. Điều này là do có khoảng 1024 byte trong mỗi kilobyte

Lấy kích thước tệp tính bằng MB

MB [megabyte] là một số liệu hữu ích nếu bạn đang xử lý các tệp MP3, Tệp Zip, PDF hoặc các tệp tương đối lớn khác

Một ví dụ về nhận kích thước của tệp tính bằng MB

//Path to our file.
$file = 'photograph.jpg';

//Get the file size in bytes.
$fileSizeBytes = filesize[$file];

//Convert the bytes into MB.
$fileSizeMB = [$fileSizeBytes / 1024 / 1024];

//269,708 bytes is 0.2572135925293 MB
var_dump[$fileSizeMB];

//Format it so that only 2 decimal points are displayed.
$fileSizeMB = number_format[$fileSizeMB, 2];

//It now becomes 0.26 MB.
var_dump[$fileSizeMB];

Trong PHP ở trên, chúng tôi

  1. Có kích thước của tệp theo byte bằng cách sử dụng chức năng kích thước tệp của PHP
  2. Đã chuyển đổi byte thành MB bằng cách chia byte cho 1024 hai lần
  3. Vì kết quả chứa cách xa hai chữ số thập phân, nên chúng tôi đã sử dụng hàm number_format của PHP để giới hạn số chữ số thập phân là 2

Trong trường hợp của tôi, “bức ảnh. jpg” có kích thước 269.708 byte, trở thành 0. 26 MB

Sử dụng PHP để lấy kích thước tệp tính bằng GB

Nếu bạn đang xử lý các tệp lớn như video, bạn có thể muốn sử dụng GB [gigabyte]

//The path to our file.
$file = 'large-file.mp4';

//Get the file size in bytes.
$fileSizeBytes = filesize[$file];

//Convert the bytes into GB.
$fileSizeGB = [$fileSizeBytes / 1024 / 1024 / 1024];

var_dump[$fileSizeGB];

Trong mẫu mã ở trên, chúng tôi đã chuyển đổi byte thành GB bằng cách chia kết quả của kích thước tệp cho 1024 ba lần

kích thước tệp sẽ không hoạt động với các tệp từ xa

Chức năng kích thước tệp sẽ không hoạt động với các tệp từ xa. Nếu bạn cố gắng lấy kích thước của một tệp từ xa bằng chức năng kích thước tệp, nó sẽ đưa ra cảnh báo sau

Cảnh báo. Kích thước tập tin[]. stat không thành công cho http. //ví dụ. com/tệp. mp4

Điều này là do lệnh stat cơ bản không hỗ trợ các tệp từ xa. Nhìn thấy. Nhận kích thước của tệp từ xa bằng PHP

Làm cách nào để chuyển đổi byte thành MB trong PHP?

Bước 1. Tạo tệp PHP và xác định mã đánh dấu cũng như tập lệnh . Ở bước này chúng ta tạo form nhập byte và chọn đơn vị để chuyển đổi. Sau khi gửi biểu mẫu, chúng tôi nhận được giá trị của kích thước và đơn vị và gọi hàm chuyển đổi để chuyển đổi byte thành đơn vị cụ thể và hiển thị trên trình duyệt.

Làm cách nào để chuyển đổi MB sang GB trong PHP?

Chủ Đề