當前位置: 首頁> 最新文章列表> 如何用PHP 的disk_free_space 函數快速查看磁盤剩餘空間?

如何用PHP 的disk_free_space 函數快速查看磁盤剩餘空間?

gitbox 2025-09-30

在日常的Web 開發中,管理服務器的存儲空間是非常重要的一項工作。 PHP 提供了一個非常方便的函數disk_free_space() ,它可以幫助我們快速查看服務器磁盤的剩餘空間。本文將介紹如何使用該函數來獲取磁盤剩餘空間,並且如何結合實際項目需求進行應用。

什麼是disk_free_space()函數?

disk_free_space()是PHP 的一個內置函數,它用於返回指定目錄所在磁盤分區的可用空間(單位為字節)。如果你想要知道某個磁盤分區當前剩餘多少可用空間,可以通過該函數非常方便地獲取。

函數的基本語法如下:

 <span><span><span class="hljs-title function_ invoke__">disk_free_space</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$directory</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>

參數說明:

  • $directory :指定的目錄路徑。該目錄可以是任意磁盤分區上的路徑,通常我們會傳遞一個目錄路徑,如/或者C:/

返回值:

  • 返回值是一個整數,表示磁盤的可用空間,單位是字節(bytes)。如果發生錯誤,函數返回false

示例:如何查看服務器磁盤剩餘空間

假設我們想查看服務器的根目錄/所在磁盤的剩餘空間,可以使用如下代碼:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$directory</span></span><span> = </span><span><span class="hljs-string">'/'</span></span><span>;
</span><span><span class="hljs-variable">$freeSpace</span></span><span> = </span><span><span class="hljs-title function_ invoke__">disk_free_space</span></span><span>(</span><span><span class="hljs-variable">$directory</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$freeSpace</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"無法獲取磁盤剩餘空間信息"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"剩餘可用空間: "</span></span><span> . </span><span><span class="hljs-variable">$freeSpace</span></span><span> . </span><span><span class="hljs-string">" 位元組"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

運行上述代碼時,如果根目錄所在磁盤有可用空間, $freeSpace會返回該磁盤的剩餘空間(以字節為單位)。如果出現錯誤,函數會返回false ,並且我們可以根據這個判斷是否成功獲取到信息。

如何將字節轉換為更易讀的單位?

雖然disk_free_space()返回的是字節數,但是在實際應用中,我們通常需要將其轉換為更易於理解的單位,例如MB 或GB。為了實現這個轉換,我們可以編寫一個簡單的函數來實現:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">formatSize</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$size</span></span></span><span>) {
    </span><span><span class="hljs-variable">$units</span></span><span> = [</span><span><span class="hljs-string">'B'</span></span><span>, </span><span><span class="hljs-string">'KB'</span></span><span>, </span><span><span class="hljs-string">'MB'</span></span><span>, </span><span><span class="hljs-string">'GB'</span></span><span>, </span><span><span class="hljs-string">'TB'</span></span><span>];
    </span><span><span class="hljs-variable">$unitIndex</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;

    </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$size</span></span><span> &gt;= </span><span><span class="hljs-number">1024</span></span><span> &amp;&amp; </span><span><span class="hljs-variable">$unitIndex</span></span><span> &lt; </span><span><span class="hljs-title function_ invoke__">count</span></span><span>(</span><span><span class="hljs-variable">$units</span></span><span>) - </span><span><span class="hljs-number">1</span></span><span>) {
        </span><span><span class="hljs-variable">$size</span></span><span> /= </span><span><span class="hljs-number">1024</span></span><span>;
        </span><span><span class="hljs-variable">$unitIndex</span></span><span>++;
    }

    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">round</span></span><span>(</span><span><span class="hljs-variable">$size</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>) . </span><span><span class="hljs-string">' '</span></span><span> . </span><span><span class="hljs-variable">$units</span></span><span>[</span><span><span class="hljs-variable">$unitIndex</span></span><span>];
}

</span><span><span class="hljs-variable">$directory</span></span><span> = </span><span><span class="hljs-string">'/'</span></span><span>;
</span><span><span class="hljs-variable">$freeSpace</span></span><span> = </span><span><span class="hljs-title function_ invoke__">disk_free_space</span></span><span>(</span><span><span class="hljs-variable">$directory</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$freeSpace</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"無法獲取磁盤剩餘空間信息"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"剩餘可用空間: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">formatSize</span></span><span>(</span><span><span class="hljs-variable">$freeSpace</span></span><span>);
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

通過formatSize()函數,我們能夠將字節數轉換為更加易於理解的單位,比如KB、MB、GB 等。

如何處理磁盤剩餘空間的監控?

在一些場景下,開發者可能需要定期監控磁盤剩餘空間,以避免磁盤空間不足而導致服務中斷。你可以通過設置定時任務來定期執行上述PHP 腳本,或者在應用中加入磁盤空間監控的邏輯。

例如,你可以在Web 應用的後台添加一個定時任務,定期檢查磁盤空間,如果剩餘空間低於某個閾值,就發送警告通知給管理員。

結語

通過PHP 的disk_free_space()函數,我們能夠輕鬆獲取磁盤剩餘空間,幫助我們及時發現存儲空間不足的問題,避免系統崩潰或服務中斷。在實際應用中,配合定時任務和空間閾值設置,可以為Web 應用提供更加健壯的存儲監控機制。