PHP interesse |
|
ik heb dus een kleine class gemaakt die alle aangegeven bestanden telt in de map en de submappen... alleen ik zit met het probleem dat als je bv de mappen hebt:
files/
files/fotos/
files/foto/groot/
files/fotos/klein/
files/bende
dat telt hij alleen de bestanden in files, files/foto en in files/bende
ik wil juist hebben dat hij tot in alle submappen telt, niet alleen de eerst voglende, hier is mijn code:
<?php
class map_counter
{
var $number = 0;
var $maps = array();
function count_map($map, $extension)
{
if ($open = opendir($map))
{
while (($data = readdir($open)) == true)
{
if ($data != '.' && $data != '..')
{
$ext = explode('.', $data);
if (strtolower($ext['1']) == $extension)
{
$this->number++;
}
}
}
closedir($open);
}
}
function get_maps($map)
{
$this->maps[] = $map;
if ($open = opendir($map))
{
while (($data = readdir($open)) == true)
{
if (is_dir($map.'/'.$data) && $data != '.' && $data != '..')
{
$this->maps[] = $map.'/'.$data;
}
}
closedir($open);
}
}
function count_total($map, $extension)
{
$this->get_maps($map);
foreach ($this->maps as $countmap)
{
$this->count_map($countmap, $extension);
}
return $this->number;
}
}
//de class aanmaken, voor elke nieuwe map die je wilt laten
//tellen moet je dus een nieuwe class aanmaken, uhhh!
$test = new map_counter;
//het aantal in een variabele douwen
$images = $test->count_total('files', 'gif');
//en uitpoepen maar :p
print $images;
?>
<?php class map_counter { var $number = 0; function count_map($map, $extension) { { while (($data = readdir($open)) == true) { if ($data != '.' && $data != '..') { { $this->number++; } } } } } function get_maps($map) { $this->maps[] = $map; { while (($data = readdir($open)) == true) { if (is_dir($map.'/'.$data) && $data != '.' && $data != '..') { $this->maps[] = $map.'/'.$data; } } } } function count_total($map, $extension) { $this->get_maps($map); foreach ($this->maps as $countmap) { $this->count_map($countmap, $extension); } return $this->number; } } //de class aanmaken, voor elke nieuwe map die je wilt laten //tellen moet je dus een nieuwe class aanmaken, uhhh! $test = new map_counter; //het aantal in een variabele douwen $images = $test->count_total('files', 'gif'); //en uitpoepen maar :p ?>
kan iemand mij helpen, bvd rob
|