mi sono imbattuto in alcuni articoli su prestazioni e readdir qui è lo script php:php cartella ricorsiva readdir vs prestazioni ritrovamento
function getDirectory($path = '.', $level = 0) {
$ignore = array('cgi-bin', '.', '..');
$dh = @opendir($path);
while(false !== ($file = readdir($dh))){
if(!in_array($file, $ignore)){
$spaces = str_repeat(' ', ($level * 4));
if(is_dir("$path/$file")){
echo "$spaces $file\n";
getDirectory("$path/$file", ($level+1));
} else {
echo "$spaces $file\n";
}
}
}
closedir($dh);
}
getDirectory(".");
questa eco correttamente i file/cartelle.
ora ho trovato questo:
$t = system('find');
print_r($t);
che trovano anche tutte le cartelle ei file allora posso creare una matrice come il primo codice.
penso che il system('find');
è più veloce rispetto alla readdir
ma voglio sapere se si tratta di una buona pratica? grazie mille
Una chiamata di sistema non è certamente portatile. Il tuo codice di esempio dipende da un * nix OS. – nickb
ho centos 5 con apache e php + mysql che va bene? – rcs20
È anche una cattiva idea abituarsi all'uso delle chiamate 'system()'. Dovrebbero andare bene senza parametri, ma se li costruisci dinamicamente in base all'input dell'utente, è probabile che crei buchi di sicurezza. – millimoose