me encontré con algunos artículos sobre el rendimiento y readdir aquí es el script php:php recurrente de la carpeta readdir vs rendimiento hallazgo
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(".");
este eco los archivos/carpetas correctamente.
ahora encontré esto:
$t = system('find');
print_r($t);
que también encontrar todas las carpetas y archivos entonces puedo crear una matriz como el primer código.
Creo que el system('find');
es más rápido que el readdir
pero quiero saber si es una buena práctica? muchas gracias
Una llamada al sistema ciertamente no es portátil. Su código de ejemplo depende de un sistema operativo * nix. – nickb
tengo centos 5 con apache y php + mysql que está bien? – rcs20
También es una mala idea acostumbrarse a usar las llamadas 'system()'. Deberían estar bien sin parámetros, pero si los construyes de forma dinámica en función de la entrada del usuario, es probable que se creen malos agujeros de seguridad. – millimoose