检查Web托管上的用户的可用空间

时间:2014-04-17 18:26:21

标签: php hosting

我想查看服务器上剩余的可用空间(使用托管服务)。但是,我不想知道整个光盘的大小,我的帐户不小心开启了。我只想知道,我已经从1 GB的购买空间中使用了456 MB。

我尝试使用此答案中的代码(Hosting Account Free Space),让我引用它:

$free = disk_free_space("/");
$total = disk_total_space("/");
$percent = ($free/$total) * 100;
echo $percent;

然而,有一个问题。起初它在真实设备上给我一个完整的自由空间。我的主机上有1GB的空间,这个解决方案告诉我,我有202 GB的空闲空间。 顺便说一句,我真的不明白为什么这个问题被关闭了。也许不是很清楚,但问题是存在的,我认为接受的答案有点不对。

我想到了一个使用exec()和bash函数的解决方案,但问题是:这是否可以仅使用PHP而不使用exec() exec()有时会被屏蔽,应该避免因代码验证问题。当然,例如mysqldump()应该使用exec()运行,但这是少数例外情况之一。

可能的想法:我虽然总结了我服务器上的所有文件,但在某种config.php文件中手动输入帐户空间。这个解决了这个问题,而不是在" nice"办法。特别是如果有人购买1 GB以上,并忘记配置"常数"。

1 个答案:

答案 0 :(得分:3)

如果网络托管使用 cPanel ,则可以使用cPanel API调用 getFreeSpace() getSpaceUsed()功能。

function getFreeSpace()
{
    $freeSpace = $this->parseIndex('Disk space available', 'float');
    return ($freeSpace == 0) ? 'Unlimited' : floatval($freeSpace);
}

只是我的2便士

cPanel API:http://www.phpkode.com/source/s/cpanel-api/cpanel-api/cPanel.php

<强>更新

我偶然发现了这个php脚本(从cms插件中提取)。所以这是我在我的网站托管上测试过的脚本:

Disk space script

<?php



// SETTINGS - START

// PUT YOUR CPANEL HOSTING USERNAME HERE:
    $username = "username";

// PUT YOUR CPANEL HOSTING USERNAME HERE:
    $password = "password";

// MODIFY THIS PATH TO REFLECT YOUR DOMAIN, REPLACING "DOMAIN-NAME" AND "YOUR-CPANEL-USERNAME":
    $query ="http://cpanel.yoursite.com:2082/xml-api/cpanel?user=USERNAME&cpanel_xmlapi_module=StatsBar&cpanel_xmlapi_func=stat&display=diskusage";

// SETTINGS - END


    $curl = curl_init();
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0);
    curl_setopt($curl, CURLOPT_HEADER,0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($curl, CURLOPT_USERPWD, $username.":".$password);
    curl_setopt($curl, CURLOPT_URL, $query);
    $result = curl_exec($curl);
    curl_close($curl); 

    $xml = simpleXML_load_string($result);

    $df = $xml->data[0]->_count; // used MB
    $ds = $xml->data[0]->_max; // max MB
    $du = $ds - $df; // free MB
    if ($ds > 0) $perc = number_format(100 * $du / $ds, 2); else $perc = 0;
    $color = '#e87d7d';
    if ($perc > 50) $color = '#e8cf7d';
    if ($perc > 70) $color = '#ace97c';
    echo '<li style="font-weight:bold;padding:5px 15px;border-radius:4px;-moz-border-radius:4px;-webkit-border-radius:4px;background-color:#182227;margin-left:13px;color:#afc5cf;">'
        .'Free disk space'
        .'<div style="border:1px solid #ccc;width:100%;margin:2px 5px 2px 0;padding:1px">'
        .'<div style="width:'.$perc.'%;background-color:'.$color.';height:6px"></div></div>'
        .$du.' of '.$ds.' MB free'.'</li>';

?>

源脚本:http://get-simple.info/extend/plugin/free-disk-space-cpanel/317/