我想查看服务器上剩余的可用空间(使用托管服务)。但是,我不想知道整个光盘的大小,我的帐户不小心开启了。我只想知道,我已经从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以上,并忘记配置"常数"。
答案 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插件中提取)。所以这是我在我的网站托管上测试过的脚本:
<?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/