ne sei certo, oppure hai scritto il contrario?
Con questa versione, $file viene assegnata una volta sola, ed il suo valore non cambia mai. Se c'e' almeno un file della directory, si crea un ciclo infinito che continua ad aggiunge lo stesso nome all'array, fino a riempire la memoria.
Codice PHP:
$cartella=opendir(HOMESITE . $link . $anno . '/' . $mese);
$file=readdir($cartella);
while($file) {
if ( ($file=='.') || ($file=='..') ) continue;
$readpagine[]=$file;
}
closedir($cartella);
Con la versione seguente invece, ad ogni iterazione del while viene letto il nome di un nuovo file. Il contenuto di $file varia ogni volta, quando viene aggiunto all'array, finche' non diventa false dopo che tutti i file sono stati enumerati, terminando il ciclo.
Codice PHP:
$cartella=opendir(HOMESITE . $link . $anno . '/' . $mese);
while($file=readdir($cartella)) {
if ( ($file=='.') || ($file=='..') ) continue;
$readpagine[]=$file;
}
closedir($cartella);
Come sempre, suggerisco a) di indentare il codice, e b) di non usare opendir/readdir, ma piu' semplicemente glob(). L'intero blocco diventerebbe:
Codice PHP:
$readpagine = glob(HOMESITE . $link . $anno . '/' . $mese);