我编写了一个代码来获取所选文件夹的大小以及所有子文件夹,但我面临的问题是,无法在循环中增加大小计数器,
function getsize($username,$password,$server,$dir){
$connid = ftp_connect($server);
//ini_set('xdebug.max_nesting_level',500);
$connid = ftp_connect($server);
$login_result = ftp_login($connid, $username, $password);
$total_size = 0;
$contents_on_server = ftp_nlist($connid, $dir);
foreach($contents_on_server as $user_file) {
if(ftp_size($connid,$user_file) == -1){
$directory = $user_file;
$obj = new FTP();
$obj->getsize($username,$password,$server,$directory);
}
else{
//$file_size = ftp_size($connid,$user_file);
$total_size += ftp_size($connid,$user_file);
}
}
echo $total_size;
}"
如果我打印$total_size
,则输出为192944122391740
,附加的所有三个文件的大小但不加总。
任何帮助??
答案 0 :(得分:0)
您正在迭代相同的函数getsize,它将$ total_size重置为零导致问题。在类中创建setize对象,在每次迭代时设置值,在最终调用时重置对象。