如何獲取PHP文件大小信息 – PHP filesize()

一、使用filesize()函數獲取文件大小信息

在PHP中可以使用filesize()函數來獲取指定文件的大小,該函數的語法如下所示:

    /**
    * 獲取文件大小
    * @param string $filename 文件名稱(包含路徑)
    * @return int 文件大小或者在出現錯誤時返回FALSE
    **/
    filesize(string $filename) : int|false

該函數的參數是要獲取大小的文件名(包含路徑),函數的返回值是文件大小,單位是位元組(byte),如果出現錯誤則返回false。

使用該函數獲取文件大小信息的示例代碼如下:

    $filename = 'path/to/file.txt';
    $filesize = filesize($filename);
    echo "文件".$filename."的大小是".$filesize."位元組";

二、使用filesize()函數獲取遠程文件大小信息

filesize()函數不僅可以獲取本地文件的大小信息,還可以獲取遠程文件的大小信息。要獲取遠程文件的大小,只需要將文件的URL作為函數的參數即可。示例代碼如下:

    $url = 'http://www.example.com/path/to/file.txt';
    $filesize = filesize($url);
    echo "文件".$url."的大小是".$filesize."位元組";

需要注意的是,如果要獲取的遠程文件是通過HTTP協議傳輸的,則需要在PHP環境中開啟allow_url_fopen選項,否則會報出”failed to open stream: operation failed”的錯誤。

示例代碼可參考下面的代碼:

    ini_set('allow_url_fopen', 'On');
    $url = 'http://www.example.com/path/to/file.txt';
    $filesize = filesize($url);
    echo "文件".$url."的大小是".$filesize."位元組";

三、將文件大小轉換為可讀性更好的格式

filesize()函數返回的是文件大小,單位是位元組。但是,用戶更習慣使用KB、MB或GB等更具有可讀性的單位表示文件大小。為了滿足用戶的需求,PHP提供了一種將文件大小轉換為更易讀的格式的方法,代碼如下:

    /**
    * 將位元組數轉換為更可讀的格式
    * @param int $filesize 文件大小,單位是位元組
    * @param int $precision 可選參數,規定小數點後保留幾位。默認為2位。
    * @return string 可讀的文件大小,如1.20kB、3.45MB、2.00GB等。
    **/
    function formatFilesize(int $filesize, int $precision = 2) : string {
        $units = array('B', 'KB', 'MB', 'GB', 'TB');
        $i = 0;
        while ($filesize >= 1024 && $i < 4) {
            $filesize /= 1024;
            $i++;
        }
        $filesize = round($filesize, $precision);
        return $filesize.$units[$i];
    }
    // 單位自動適配,是1024,而不是1000

該函數的第一個參數是文件大小,單位是位元組;第二個參數是可選的,用於指定小數點後保留幾位。該函數將文件大小按照1024位元組劃分為不同的單位(如B、KB、MB等),再將文件大小進行四捨五入處理,最後返回一個字元串表示的可讀的文件大小。示例代碼如下:

    $filesize = filesize('path/to/file.txt');
    $filesize = formatFilesize($filesize);
    echo "文件大小為:".$filesize;

四、其他注意事項

在使用filesize()函數獲取文件大小時,需要注意一些問題:

  • 如果該文件不存在,則返回false。

  • 對於某些不支持文件指針的操作系統,filesize()函數無法獲取超過2G的文件大小。

  • 如果要獲取的文件是一個目錄,則返回false。

  • 使用PHP的filesize()函數獲取文件大小,並不是最好的方法。更好的方法是使用操作系統提供的stat()或fstat()函數。但是,這些方法需要對文件進行比較底層的處理,因此對於初學者來說使用filesize()函數還是比較方便的。

參考文獻:

  1. PHP: filesize – Manual
  2. PHP: round – Manual

原創文章,作者:KHRW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/135649.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
KHRW的頭像KHRW
上一篇 2024-10-04 00:14
下一篇 2024-10-04 00:14

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Dapper使用getschema獲取表信息

    本文旨在介紹Dapper中使用getschema獲取表信息的方法和注意事項。 一、獲取某張表的所有列信息 使用Dapper獲取某張表信息,可以使用 `IDbConnection.G…

    編程 2025-04-27

發表回復

登錄後才能評論