Получить размер каталога ssh2 Переполнение стека

Мне нужно выяснить, как я могу получить размер каталога папки.

Код, который работает взято с php.net

$SSH_CONNECTION= ssh2_connect('xx.xxx.xx.xx', xx);
ssh2_auth_password($SSH_CONNECTION, 'xxxxxxx', 'xxxxxxxxxxxxx');

function scanFilesystem($dir) {
$tempArray = array();
$handle = opendir($dir);
// List all the files
while (false !== ($file = readdir($handle))) {
if (substr("$file", 0, 1) != "."){
if(is_dir($file)){
$tempArray[$file]=scanFilesystem("$dir/$file");
} else {
$tempArray[]=$file;
}
}
}
closedir($handle);
return $tempArray;
}$sftp = ssh2_sftp($SSH_CONNECTION);

//code to get listing of all OUTGOING files
$dir = "ssh2.sftp://$sftp//home/user/mail/websiteaddress.com.au/janedoe";
$outgoing = scanFilesystem($dir);
sort($outgoing);
print_r($outgoing);

Таким образом, я получаю результат из print_r, но теперь, как мне узнать размер папки janedoe?

Вывод $ outgoing:

array(4) {
[0]=> string(3) "cur"[1]=> string(11) "maildirsize"[2]=> string(3) "new"[3]=> string(3) "tmp"}

0

Решение

Вы можете добавить аккумулятор размера файла в ваш массив возврата:

function scanFilesystem($dir) {
$tempArray = array();
$tempArray['total_size'] = 0;
$handle = opendir($dir);
// List all the files
while (false !== ($file = readdir($handle))) {
if (substr("$file", 0, 1) != "."){
if(is_dir($file)){
$tempArray[$file]=scanFilesystem("$dir/$file");
$tempArray['total_size'] += $tempArray[$file]['total_size'];
} else {
$tempArray[]=$file;
$tempArray['total_size'] += filesize("$dir/$file");
}
}
}
closedir($handle);
return $tempArray;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]