日期:2014-05-17  浏览次数:20531 次

用PHP能不能得到网站的容量
最近做的一个小网站,是给客户上传文件用的。

比如网站容量是20G,那如果限制一个客户上传不超过1G,就可以提供给20个客户用了。

被上司问了这个问题,我没大搞清楚为什么要用php去取得。。各位大侠有什么看法?

------解决方案--------------------
PHP code

<?php
function explorerdir($sDir){
    
//    static $aTempArr=array();
    static $iFileSize;
    $dp=opendir($sDir);
    while ($sFileName = readdir($dp)){
        
        if ($sFileName !='.' && $sFileName !='..'){  
            
            $sPath=$sDir."/" . $sFileName; 
            if ( is_dir($sPath)){
                
                explorerdir($sPath);   
            } else  {
                
//                $filetime=date("Y-m-d H:i:s",filectime("$path")); 
//                $fp=$path.",".$filetime;
                $iFileSize += filesize($sPath);
                $fp=$sPath;
//                $aTempArr[]=$fp;
            }
       }
    }
    closedir($dp);
    return $iFileSize;
//    return $aTempArr;
}
$iFileSizes = explorerdir("D:/wamp/www/csdn_html/test");

if (1048576 > $iFileSizes && $iFileSizes >= 1024)
    $iFileSizes = $iFileSizes/1024 . 'KB';
elseif (1073741824 > $iFileSizes && $iFileSizes >= 1048576)
    $iFileSizes = $iFileSizes/1024 . 'MB';
else 
    $iFileSizes = $iFileSizes . 'Byte';
echo $iFileSizes;
?>

------解决方案--------------------
这个有多种解决方案:

如果是不同网站,可能给每一个客户分配空间。

如果是同一网站:你可以将客户上传数据统计进数据库(或查询统计,每次上传时看看他还有多少配额,有的话,允许上传。
否则pass.

另,php可获得磁盘空间信息。

------解决方案--------------------
PHP code

disk_free_space("C:");
disk_free_space("D:");
disk_total_space("C:");
disk_total_space("D:");

------解决方案--------------------
可以统计啊,,,从他建站开始,每次上传,修改,删除都做一下加减法不行么
------解决方案--------------------
可以的,统计每个站的根目录文件夹就可以了
------解决方案--------------------
你分配多大,就能存放多大。
10G的电影能放在一个还剩下9.9G容量的盘里面?
你分配的原始大小-用掉的(也就是现有的数据量的大小)==?
这个网站可以存放文件的最大容量取决于你为这个存储文件的目录分配的最大容量
是你的问题太高深了,还是我的理解问题?
------解决方案--------------------
可以利用操作系统的磁盘配额来做