如何透過php檔案系統函數取得磁碟分割的大小
#透過檔案系統函數不但可以對目錄、檔案進行操作,而且可以取得目錄,文件的相關信息,那麼是否可以獲取磁碟分割的大小呢!
取得磁碟分割的大小應用程式是 disk_total_sapce()函數,取得磁碟分割的剩餘空間應用的是 disk_free_space()函數。
disk_total_space()函數:取得目錄的磁碟大小,語法格式如下:
float disk_total_space(string directory)
此函數根據參數directory提供的目錄字串,傳回對應的檔案系統或磁碟區分的所有位元組數。
注意:
#本函數不能作用於遠端文件,其檢測的文件必須通過伺服器的檔案系統存取!
disk_free_space()函數:取得目錄的可用空間,語法格式如下:
float disk_free_space(string directory)
參數 directory 用來指定檔案系統或磁碟區分!
說明:
#本函數傳回的是該目錄所在的磁碟分割區的總大小,因此再給出同一個磁碟分割區的不同目錄作為參數所得到的結果完全相同!
應用程式實例
本範例套用 disk_total_space()函數取得磁碟分割區大小。具體程式碼如下:
(1) 建立一個php文件,新增表單,設定文字框,提交按鈕,使用POST方法,講述提交到本頁。
(2) 透過$_POST取得表單提交的目錄路徑,先判斷所取得的目錄是否合理。然後透過 iconv()函數對獲取的字串進行編碼轉換,接著對獲取的字串進行截取。取得該目錄所在的裁判分割區,並套用disk_total_space()函數取得磁碟分割區的大小,最後,套用opendir()函數和readdir()函數讀取提交目錄的內容,具體程式碼如下:
<form name="form1" action="6.php" method="post"> 文件名称: <input name="file_name" type="text"> <input type="submit" name="Submit" value="提交"> </form> <?php header("Content-Type:text/html; charset=utf-8"); if ($_POST['file_name']){ if($_POST['file_name']!="" && is_file($_POST['file_name'])==false){ $file_name = iconv("utf-8","gb2312",$_POST['file_name']); // 编码格式转换 if (file_exists($file_name)){ //判断目录是否存在 $len = strripos($file_name,":"); //截取字符串 $dir = substr($file_name,0,$len+1); //获取提交目录所在磁盘 $filesize_z = disk_total_space($dir); //获取目录大小 $filesize_z = number_format($filesize_z/(1024*1024*1024),2,".",""); //数字的格式化 $filesize_s = disk_free_space($dir); //获取裁判剩余空间 $filesize_s = number_format($filesize_s/(1024*1024*1024),2,".",""); //字节的格式化 echo "本地磁盘(".$dir.") 总大小:".$filesize_z." GB 可用空间:".$filesize_s."GB <br><br>"; echo $_POST['file_name']."目录下的内容:"."<br>"; $i = 0; $list = opendir($file_name); //打开目录 while($read_list = readdir($list)){ //读取目录 $i++; echo "$i:".iconv("gb2312","utf-8",$read_list)."<br>"; //输出目录中的内容 } closedir($list); //关于目录 }else{ echo "<script>alert('目录不存在!');</script>"; } }else{ echo "<script>alert('请输入正确的目录路径!');</script>"; } }
上述輸出結果如下:
說明:
strripos()函數用於判斷指定字串在另一個字串中最後出現的位置。透過本函數可以取得到指定字串A 在另一字串B 中最後出現的位置,其傳回值為int型,根據該回傳值就可以對字串B 以字串A為分割點進行截取,在執行截取的操作時需要套用到substr()函數。
$len = strripos($file_name,":"); //截取字符串 $dir = substr($file_name,0,$len+1); //获取提交目录所在磁盘
以上是如何透過php檔案系統函數取得磁碟分割的大小的詳細內容。更多資訊請關注PHP中文網其他相關文章!