2013-04-15 54 views
0
$harddrive_out = format_bytes(kb2bytes($harddrive[2])).'<small>/'.format_bytes(kb2bytes($harddrive[1])).' <small>('.calculate_percentage(kb2bytes($harddrive[2]), kb2bytes($harddrive[1])).'% Free)</small></small>'; 

此行給我的錯誤注意:未定義抵消:2或如何獲得硬盤空間

我得到這個代碼http://www.installgentoo.net/ 它顯然爲他們工作的全部時間。我正在使用Windows,他們可能正在使用的Linux

如果這是一個Windows問題,我怎麼能做一些適用於Windows和Linux的東西(總是得到正確的硬盤,所以我不使用像disk_total_space("C:")因爲所有的網絡服務器可能沒有它在C盤上。

如果你要我用

function format_bytes($bytes){ 
    if ($bytes < 1024){ return $bytes; } 
    else if ($bytes < 1048576){ return round($bytes/1024, 2).'KB'; } 
    else if ($bytes < 1073741824){ return round($bytes/1048576, 2).'MB'; } 
    else if ($bytes < 1099511627776){ return round($bytes/1073741824, 2).'GB'; } 
    else{ return round($bytes/1099511627776, 2).'TB'; } 
} 


    function kb2bytes($kb){ 
    return round($kb * 1024, 2); 
} 

function calculate_percentage($used, $total){ 
    return @round(100 - $used/$total * 100, 2); 
+0

我不知道你怎麼想決定你要使用/顯示_which_分區之前。典型的服務器在其文件系統中安裝了多個分區(在MS-Windows-speek中錯誤地稱爲「磁盤」)。 – arkascha

+0

'$ harddrive'是什麼?它似乎是一個數組,並且編入'$ harddisk [2]'索引似乎是導致問題的原因。那麼如何聲明'$ harddrive'?它是如何填充的? –

+0

我希望它獲得所有分區 – user2179524

回答

0

的通知,通知您的方法,在

$harddrive[2] 

不是一個有效的索引。

因此,嘗試通過檢查:

if(isset($harddrive[2])) // do your magic with that...