/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Filer i en mapper
Fra : Niels


Dato : 31-05-05 06:03

Ja, script der tæller hvor mange filer der er i en mappe, har prøvet at
kigge på php.net, men er ikke så god til at finde rundt i manualen

--
Mvh. Niels (http://niels.spoweb.dk)
http://niels.spoweb.dk/noop - Søgemaskine



 
 
Per Thomsen (31-05-2005)
Kommentar
Fra : Per Thomsen


Dato : 31-05-05 08:34

Niels wrote:
> Ja, script der tæller hvor mange filer der er i en mappe, har prøvet at
> kigge på php.net, men er ikke så god til at finde rundt i manualen
>

Hvis du skal tælle filer og directories, er det nok noget med:

if( $dirContent = scandir('directory') ) {
   $count = count($dirContent);
}

Hvis du kun skal tælle filer, er det nok noget med:
if( $dirContent = glob('directory/*.*') ) {
   $count = count($dirContent);
}

Se:    http://dk.php.net/scandir
   http://dk.php.net/glob


MVH Per Thomsen,
http://www.pert.dk/

Jacob Atzen (31-05-2005)
Kommentar
Fra : Jacob Atzen


Dato : 31-05-05 09:11

On 2005-05-31, Per Thomsen <pert@pert.dk> wrote:
> Hvis du kun skal tælle filer, er det nok noget med:
> if( $dirContent = glob('directory/*.*') ) {
>    $count = count($dirContent);
> }

Ovenstående virker ikke, hvis man har filer uden punktum - eller
biblioteker med punktum. Bedre resultater kan opnås med is_file() og
is_dir().

--
Med venlig hilsen
- Jacob Atzen

Per Thomsen (31-05-2005)
Kommentar
Fra : Per Thomsen


Dato : 31-05-05 11:54

Jacob Atzen wrote:
> On 2005-05-31, Per Thomsen <pert@pert.dk> wrote:
>
>>Hvis du kun skal tælle filer, er det nok noget med:
>>if( $dirContent = glob('directory/*.*') ) {
>>   $count = count($dirContent);
>>}
>
>
> Ovenstående virker ikke, hvis man har filer uden punktum - eller
> biblioteker med punktum. Bedre resultater kan opnås med is_file() og
> is_dir().
>

Det vidste jeg egentlig godt, det var derfor jeg skrev "nok noget med" :)

Men du har ret, det burde jeg self. have gjort opmærksom på, jeg kan da
i forsoning ;) føre dit forslag videre:

function countFiles($directory) {
$noOfFiles = 0;
if( $dh = opendir($directory) ) {
rewinddir($dh); //Sikkert ikke nødvendigt.
while( ($file = readdir($dh))!==FALSE ) {
if( !is_dir($directory.'/'.$file) ) {
$noOfFiles++;
}
}
closedir($dh);
} else {
trigger_error('Could not open directory in \'countFiles\'',
E_USER_ERROR);
}
return $noOfFiles;
}

Self. kunne man også kombinere glob() og scandir() med is_dir() og
is_file(), men jeg skulle mene at ovenstående funktion gør det, Niels
bad om: tæller filer, og ikke directories.

MVH Per Thomsen,
http://www.pert.dk/

Jacob Atzen (31-05-2005)
Kommentar
Fra : Jacob Atzen


Dato : 31-05-05 12:50

On 2005-05-31, Per Thomsen <pert@pert.dk> wrote:
> Men du har ret, det burde jeg self. have gjort opmærksom på, jeg kan da
> i forsoning ;) føre dit forslag videre:
>
> function countFiles($directory) {
[snip]

Alternativ løsning:

function countFiles($dir) {
if(!is_dir($dir)) {
return 0;
}
return count(array_filter(scandir($dir), 'is_file')));
}



--
Med venlig hilsen
- Jacob Atzen

Niels (31-05-2005)
Kommentar
Fra : Niels


Dato : 31-05-05 14:42


"Jacob Atzen" <jacob@aub.dk> skrev i en meddelelse
news:slrnd9ojqi.ddl.jacob@tank.aub.dk...
> On 2005-05-31, Per Thomsen <pert@pert.dk> wrote:
>> Men du har ret, det burde jeg self. have gjort opmærksom på, jeg kan da
>> i forsoning ;) føre dit forslag videre:
>>
>> function countFiles($directory) {
> [snip]
>
> Alternativ løsning:
>
> function countFiles($dir) {
> if(!is_dir($dir)) {
> return 0;
> }
> return count(array_filter(scandir($dir), 'is_file')));
> }
>
>
>
> --
> Med venlig hilsen
> - Jacob Atzen

hvad er så antallet af filer i mappen?
og $dir er vel mappen



Jacob Atzen (31-05-2005)
Kommentar
Fra : Jacob Atzen


Dato : 31-05-05 17:26

On 2005-05-31, Niels <niels@spoweb.dk> wrote:
> "Jacob Atzen" <jacob@aub.dk> skrev i en meddelelse
>> function countFiles($dir) {
>> if(!is_dir($dir)) {
>> return 0;
>> }
>> return count(array_filter(scandir($dir), 'is_file')));
>> }
>
> hvad er så antallet af filer i mappen?
> og $dir er vel mappen

Antallet er det tal funktionen returnerer og ja, $dir er den mappe man
vil undersøge.

--
Med venlig hilsen
- Jacob Atzen

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste