Domanda semplice per un newb e il mio Google-Fu mi sta fallendo. Usando PHP, come puoi contare il numero di file in una determinata directory, comprese le sottodirectory (e qualsiasi sottodirectory che potrebbero avere, ecc.)? per esempio. se la struttura della directory è la seguente:Conteggio ricorsivo di file con PHP
/Dir_A/ /Dir_A/File1.blah /Dir_A/Dir_B/ /Dir_A/Dir_B/File2.blah /Dir_A/Dir_B/File3.blah /Dir_A/Dir_B/Dir_C/ /Dir_A/Dir_B/Dir_C/File4.blah /Dir_A/Dir_D/ /Dir_A/Dir_D/File5.blah
Lo script deve restituire con "5" per "./Dir_A".
Ho messo insieme le seguenti, ma non è proprio il ritorno la risposta corretta, e io non sono sicuro perché:
function getFilecount($path = '.', $filecount = 0, $total = 0){ $ignore = array('cgi-bin', '.', '..', '.DS_Store'); $dh = @opendir($path); while(false !== ($file = readdir($dh))){ if(!in_array($file, $ignore)){ if(is_dir("$path/$file")){ $filecount = count(glob("$path/$file/" . "*")); $total += $filecount; echo $filecount; /* debugging */ echo " $total"; /* debugging */ echo " $path/$file
"; /* debugging */ getFilecount("$path/$file", $filecount, $total); } } } return $total; }
Apprezzerei molto di aiuto.
Questo codice funziona esattamente come richiesto. –
Ciao. Grazie per la pronta assistenza. Questo script sta causando un errore di timeout per me. "Errore irreversibile: superato il tempo di esecuzione massimo di 30 secondi". Non so perché. Ci sono solo 8 cartelle e 68 file nella directory di destinazione. – user18359
Prova a ricopiare-incollando quello che è attualmente lì. La mia risposta originale ha avuto un errore in questo, questo è testato e funziona. –