Cách lấy kích thước tệp trong php?

Đâ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

Hàm 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”

Chức năng 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)

Thí 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. //thí 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

Nó thực hiện điều này theo byte theo mặc định, nhưng với một chút mày mò, chúng ta có thể dễ dàng chuyển đổi điều này thành kilobyte hoặc megabyte

Trước tiên hãy xem cách nó hoạt động theo byte

$file = '/path/to/your/file';
$filesize = filesize($file);

echo "The size of your file is $filesize bytes.";

Chuyển đổi byte thành kilobyte hoạt động bằng cách chia giá trị cho 1024. PHP rất chính xác và sẽ cung cấp cho bạn 12 chữ số thập phân – có lẽ hơi quá mức cần thiết. Để tránh điều này, chúng ta có thể sử dụng hàm round() và chỉ định số lượng chữ số chính xác mà chúng ta muốn hiển thị

Sớm hay muộn trong các ứng dụng của bạn, bạn sẽ phải đối mặt với nhiệm vụ biết kích thước của tệp. Có rất nhiều ví dụ tại sao chúng ta cần biết kích thước của tệp và một trong những ví dụ đó có thể là khi bạn hoặc người dùng bắt đầu tải hình ảnh hoặc tệp nào đó lên máy chủ của mình và trước khi bắt đầu tải tệp này lên, bạn có thể đưa vào các điều kiện

Trong PHP, có hai tùy chọn về cách xem kích thước của tệp và chúng ta sẽ xem xét chúng hôm nay.  

 

Trong biến thể đầu tiên, chúng tôi sẽ sử dụng chức năng kích thước tệp. Hàm kích thước tệp chỉ nhận một tham số bắt buộc, tên tệp. Hàm trả về kích thước của tệp theo byte. Trong trường hợp có lỗi, nó sẽ trả về FALSE và tạo ra lỗi cấp độ E_WARNING

________số 8

Cách lấy kích thước tệp trong php?

Trong ví dụ này, chúng tôi lấy kích thước của it-inzhener. png và kết quả là 105478 byte

Lấy kích thước tệp theo byte rất bất tiện và do đó chúng ta có thể tạo một hàm sẽ chuyển đổi byte thành các giá trị khác cho chúng ta

function getFilesize($filesize)
{
    if ($filesize > 1024) {
        $filesize = ($filesize / 1024);
        if ($filesize > 1024) {
            $filesize = ($filesize / 1024);
            if ($filesize > 1024) {
                $filesize = ($filesize / 1024);
                $filesize = round($filesize, 1);
                return $filesize . " GB";
            } else {
                $filesize = round($filesize, 1);
                return $filesize . " MB";
            }
        } else {
            $filesize = round($filesize, 1);
            return $filesize . " KB";
        }
    } else {
        $filesize = round($filesize, 1);
        return $filesize . " bytes";
    }
}

Hàm lấy kích thước theo byte và trả về kích thước theo các giá trị khác. Hàm chuyển đổi byte thành giá trị mong muốn, dựa trên kích thước của chính tệp

Cách lấy kích thước tệp trong php?


 

Tùy chọn tiếp theo để lấy kích thước tệp là sử dụng một lớp php đặc biệt có tên là SplFileInfo. Trước tiên, chúng ta cần tạo một đối tượng của lớp này và truyền chính tệp đó cho hàm tạo của nó, sau đó chúng ta cần thực thi phương thức của lớp này có tên là getSize. Phương thức getSize trả về kích thước của tệp, cũng tính bằng byte và trong trường hợp có bất kỳ lỗi nào, phương thức này sẽ trả về FALSE

Kích thước tệp PHP là gì?

Cú pháp. tham số filesize($filename). Hàm filesize() trong PHP chỉ chấp nhận một tham số $filename. Nó chỉ định tên tệp của tệp có kích thước mà bạn muốn kiểm tra . Giá trị trả về. Nó trả về kích thước của một tệp theo byte khi thành công và Sai khi thất bại.

Các tệp $ _ trong PHP là gì?

$_FILES là mảng toàn cầu liên kết hai chiều gồm các mục đang được tải lên qua phương thức HTTP POST và chứa các thuộc tính của tệp . Thuộc tính. Sự mô tả. [name] Tên tệp đang tải lên.

File_get_contents là gì?

file_get_contents() đọc tệp thành một chuỗi . Hàm này là cách ưa thích để đọc nội dung của tệp thành một chuỗi. Nó sẽ sử dụng các kỹ thuật ánh xạ bộ nhớ, nếu điều này được máy chủ hỗ trợ, để nâng cao hiệu suất.

Loại tệp PHP là gì?

Tệp PHP là gì? . phần mở rộng php đề cập đến ngôn ngữ lập trình nguồn mở , được sử dụng để viết các tập lệnh phía máy chủ, được thực thi trên máy chủ web. Đây là ngôn ngữ kịch bản web được sử dụng rộng rãi nhất, thường được sử dụng để phát triển các ứng dụng web quy mô lớn.