You are here: Some array counting math « PHP Programming Language « IT news, forums, messages
Some array counting math

Posted by frizzle on 11/27/07 19:25

Hi there,

I have a function to create an array of all files in a certain folder,
so i can display the structure.
The actual function is below the message, as is an example of its
output.

As one can see, the filesize is also stored in the array (more info
will be added, like filemtime),
what i need is to sum all bytes per folder.

So if i have e.g.

- folder_1_level1 -> size file 1 / 96
* file_1
* file_2

- folder_1_level2 -> size file 3, 4, 7, 8, 9
* file_3
* file_4
- folder_1_level3 -> size file 7, 8, 9
* file_7
* file_8
* file_9

- folder_2_level2 -> size file 5, 6
* file_5
* file_6


The latter should give me the sum of all filesizes in there,
folder_level2 should give me folder_level3's size PLUS other files/
folders that are in folder_level2, and then, folder_level1 should have
the size of all files in there down the entire tree.

I hope it's clear and that someone can help me.

Cheers.


*** FUNCTION CODE ***

function mapit( $dir = '.', $loop = 0, $parent = false ){
$handle = @opendir( $dir );
while( ( $file=readdir( $handle ) ) !== false ){
if( $file != '.' && $file != '..' ){
$point = $dir."/".$file;
$fileSize = filesize( $dir.'/'.$file );
if( is_dir( $point ) )
$info['dirs'][$file] = mapit( $point , $loop+1, $file );
else
$info['files'][$file] = $parent.' -> '.$fileSize;
}
}
return $info;
}

$structure = mapit();
print_r( $structure );

*** /FUNCTION CODE ***



*** RESULT EXAMPLE ***

Array
(
[dirs] => Array
(
[upload] => Array
(
[files] => Array
(
[index.htm] => upload -> 1391
[index.php] => upload -> 23
[upload.php] => upload -> 7733
)

[dirs] => Array
(
[img] => Array
(
[files] => Array
(
[0.jpg] => img -> 36866
[12.jpg] => img -> 218
[13.jpg] => img -> 36866
)
)
)
)

[files] => Array
(
[dirs] => Array
(
[just-a-dir] =>
[images] => Array
(
[files] => Array
(
[lion.jpg] => flip ->
350398
)
)
)
[files] => Array
(
[logo.pdf] => files -> 157764
[tiger.jpg] => files -> 350398
)
)
)

[files] => Array
(
[ftp.php] => -> 10238
[cats.php] => -> 8237
)
)

*** /RESULT EXAMPLE ***

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация