PHP:glob() 取得匹配之檔案路徑、filesize() 取得指定檔案大小

2021/10/22 50 0 網站技術 , PHP

這次要一次解說兩個 PHP 的方法(函數),首先先來介紹 glob(),它可以用來取得匹配之檔案路徑,您可以透過一些特殊字元來尋找檔案的完整相對路徑,舉例來說要取得在 gpx 資料夾下的所有以 .gpx 結尾的檔案路徑,可以用 glob("gpx/*.gpx") 表示,常用的有:* 代表任何數量的所有字元皆匹配、? 代表單一數量的所有字元皆匹配。最終會回傳一個陣列儲存每個匹配的檔案路徑。filesize() 則是可以用來取得指定檔案的大小,該方法只能一次偵測一個檔案的大小,因此要透過迴圈的方式進行多檔偵測,另外其輸出的單位為 Bytes,需要透過自行撰寫的轉換方法來做到顯示 KB、MB、GB 之類的大單位,文末會附上轉換原始碼。

foreach (glob("gpx/*.gpx") as $filename) {
    echo "$filename size " . filesize($filename) . "<br>";
}

這樣會輸出以下結果:

gpx/test.gpx size 6766
gpx/test2.gpx size 2784

然後我們可以透過針對 Bytes 設計的轉換方法進行單位轉換(原始碼來源)

function formatSizeUnits($bytes)
{
    if ($bytes >= 1073741824) {
        $bytes = number_format($bytes / 1073741824, 2) . ' GB';
    } elseif ($bytes >= 1048576) {
        $bytes = number_format($bytes / 1048576, 2) . ' MB';
    } elseif ($bytes >= 1024) {
        $bytes = number_format($bytes / 1024, 2) . ' KB';
    } elseif ($bytes > 1) {
        $bytes = $bytes . ' bytes';
    } elseif ($bytes == 1) {
        $bytes = $bytes . ' byte';
    } else {
        $bytes = '0 bytes';
    }
    return $bytes;
}

這樣就可以最大轉換成 GB 囉!與剛剛的轉換方法結合起來用如下:

foreach (glob("gpx/*.gpx") as $filename) {
    echo "$filename size " . formatSizeUnits(filesize($filename)) . "<br>";
}

輸出結果如下:

gpx/test.gpx size 6.61 KB
gpx/test2.gpx size 2.72 KB

希望以上有幫助到大家!更多方法細節可查詢 PHP 官方文檔:glob()filesize()


▲ 精選圖片。

贊助廣告 ‧ Sponsor advertisements
徵信社有甚麼服務| 外遇疑雲| 阿宅來說徵信社故事| 如何手機監聽| 徵信社抓姦介紹| 徵信價目表費用| 抓姦在床蒐證| 台北立達徵信社| 免費法律諮詢子女監護權| 馭夫術手段| 合法徵信社推薦| 挖掘徵信社新聞| 打擊小三包二奶| 抓小三蒐證| 反跟蹤可行嗎| 尋人查址高手| 夫妻協議離婚| 委託外遇蒐證| 丈夫外遇偷腥| 名人外遇新聞| 立案專業徵信社| 婚前調查協助| 離婚扶養費可以要多少| 汽車定位追蹤| 危險徵信社任務| 免費法律諮詢| 一日偵探雞排妹|
【業界首推立達徵信FB