Hàm filesize() có chức năng gì trong PHP?

24/07/2020 - lượt xem
Chia sẻ
 
Rate this post

Định Nghĩa.

Hàm filesize() sẽ lấy kích thước của tập tin truyền vào.

Cú pháp.

Cú pháp:

filesize ( string $filename ) : int

Trong đó.

  • $filename là đường dẫn tới file.

Giá trị trả về.

  • Trả về kích thước của tệp theo byte hoặc FALSE (và tạo ra lỗi cấp E_WARNING) trong trường hợp có lỗi.

– Lưu ý: Vì loại số nguyên của PHP đã được signed  và nhiều nền tảng sử dụng môi trường 32bit, một số hàm hệ thống tệp có thể trả về kết quả không mong muốn cho các tệp lớn hơn 2GB.

Ví dụ.

ví dụ 1 filesize() đơn giản.

code:

<?php

// outputs e.g.  somefile.txt: 1024 bytes

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

Errors/Exceptions.

  • Khi thất bại, Một cảnh báo E_WARNING được phát ra.

Ghi chú.

  • Kết quả của chức năng này được lưu trữ. Xem Clearstatcache () để biết thêm chi tiết.
  • Kể từ phiên bản PHP 5.0.0, chức năng này cũng có thể được sử dụng với một số trình bao bọc URL. Tham khảo các Supported Protocols and Wrappers  để xác định nhóm chức năng hỗ trợ stat() nào.

Hàm liên quan.

  • file_exists() – Check file hoặc thư mục có tồn tại hay không.

Thông tin thêm.

  • Chức năng cực kỳ đơn giản để có được kích thước tập tin của con người.
    <?php
    function human_filesize($bytes$decimals 2) {
      $sz 'BKMGTP';
      $factor floor((strlen($bytes) - 1) / 3);
      return sprintf("%.{$decimals}f"$bytes pow(1024$factor)) . @$sz[$factor];
    }
    ?>
  • nếu gần đây bạn đã thêm một cái gì đó vào tệp và đóng nó thì phương pháp này sẽ không hiển thị dữ liệu được nối thêm:
    <?php
    // get contents of a file into a string
    $filename "/usr/local/something.txt";
    $handle fopen($filename"r");
    $contents fread($handlefilesize($filename));
    fclose($handle);
    ?>
    Bạn nên gọi đến hàm  Clearstatcache () trước khi gọi filesize () Tôi đã mất một khoảng thời gian để tìm ra vấn đề này.
  • Để bạn có thể dễ biết file có kích thước bao nhiêu (Kích thước dễ nhận biết chứ không phải kí tự bytes ) ta có thể dùng hàm bên dưới.
    function FileSizeConvert($bytes)
    {
        $bytes = floatval($bytes);
            $arBytes = array(
                0 => array(
                    "UNIT" => "TB",
                    "VALUE" => pow(1024, 4)
                ),
                1 => array(
                    "UNIT" => "GB",
                    "VALUE" => pow(1024, 3)
                ),
                2 => array(
                    "UNIT" => "MB",
                    "VALUE" => pow(1024, 2)
                ),
                3 => array(
                    "UNIT" => "KB",
                    "VALUE" => 1024
                ),
                4 => array(
                    "UNIT" => "B",
                    "VALUE" => 1
                ),
            );
    
        foreach($arBytes as $arItem)
        {
            if($bytes >= $arItem["VALUE"])
            {
                $result = $bytes / $arItem["VALUE"];
                $result = str_replace(".", "," , strval(round($result, 2)))." ".$arItem["UNIT"];
                break;
            }
        }
        return $result;
    }
    
    ?>

Các bạn có thể xem chi tiết hơn trên php.net.

Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm filesize() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm