2011-11-21 61 views
2

可能重複:
How to get system info in PHP?如何通過php獲取系統驅動器?

我建立一個簡單的文件瀏覽器,我想知道如何獲得通過PHP腳本的總驅動器,有名字,像系統信息?

感謝

+0

哪個操作系統,你會使用會輸出什麼? – zrvan

+3

由於PHP在服務器上執行,我認爲你不能訪問你的本地(客戶端)文件系統(和系統驅動器等)。這就是爲什麼文件瀏覽器等被寫在網站上的Javascript .... – philomatic

+2

@ PaddyG OP沒有指定他是否想爲服務器或客戶端建立一個文件瀏覽器 – Gordon

回答

11

這是從人工使用COM類得到,並且是Windows(因爲你沒有指定OS)。

注意:這與客戶端無關。

<?php 
$fso = new COM('Scripting.FileSystemObject'); 
    $D = $fso->Drives; 
    $type = array("Unknown","Removable","Fixed","Network","CD-ROM","RAM Disk"); 
    foreach($D as $d){ 
     $dO = $fso->GetDrive($d); 
     $s = ""; 
     if($dO->DriveType == 3){ 
      $n = $dO->Sharename; 
     }else if($dO->IsReady){ 
      $n = $dO->VolumeName; 
      $s = file_size($dO->FreeSpace) . " free of: " . file_size($dO->TotalSize); 
     }else{ 
      $n = "[Drive not ready]"; 
     } 
    echo "Drive " . $dO->DriveLetter . ": - " . $type[$dO->DriveType] . " - " . $n . " - " . $s . "<br>"; 

    } 

     function file_size($size) 
     { 
     $filesizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); 
     return $size ? round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i] : '0 Bytes'; 
     } 


?> 

類似

Drive C: - Fixed - Bla - 88.38 GB free of: 444.14 GB 
Drive D: - Fixed - Blas - 3.11 GB free of: 21.33 GB 
Drive E: - Fixed - HP_TOOLS - 90.1 MB free of: 99.02 MB 
Drive F: - CD-ROM - [Drive not ready] - 
Drive G: - CD-ROM - Usb - 0 Bytes free of: 24.75 MB 
Drive H: - Removable - [Drive not ready] -