Listar, filtrando por extensión, los ficheros de una carpeta con PHP

0 COMENTARIOS -  Publicado hace 13 meses -  Clasificado en: ,

La siguiente función lista todos los ficheros de una carpeta con la extensión o extensiones que especifiquemos. Esta función es una variación de la publicada en "Listar todos los ficheros de un directorio con PHP"

<?php
function listar_ficheros ($tipos, $carpeta){
    //Comprobamos que la carpeta existe
    if (is_dir ($carpeta)){
        //Escaneamos la carpeta usando scandir
        $scanarray = scandir ($carpeta);
        for ($i = 0; $i < count ($scanarray); $i++){
            //Eliminamos  "." and ".." del listado de ficheros
            if ($scanarray[$i] != "." && $scanarray[$i] != ".."){
		//No mostramos los subdirectorios
		if (is_file ($carpeta . "/" . $scanarray[$i])){
                        //Verificamos que la extension se encuentre en $tipos
			$thepath = pathinfo ($carpeta . "/" . $scanarray[$i]);
			if (in_array ($thepath['extension'], $tipos)){
				echo $scanarray[$i] . "
"; } } } } } else { echo "La carpeta no existe"; } } ?>

Un ejemplo de uso sería:

<?php
$tipos = array ("gif","html");
echo listar_ficheros ($tipos, "Imagenes");
?>

Se listarían todos los ficheros con extensión "gif" y "html" ubicados en la carpeta "Imágenes"

Algunas entradas relacionadas:

También te puede interesar:

Haz un comentario

¡Gracias por dejar tu opinión! Por favor procura que tu comentarios sean apropiados respecto al tema tratado en la entrada; que no sean spam, u ofensivos, de otro modo, serán eliminados. Todos los comentarios serán moderados antes de su publicación por lo que su aparición en la web puede verse aplazada un cierto tiempo. Si deseas realizar algún comentario, crítica o sugerencia sobre la propia web puedes hacer a través de la siguiente dirección de correo: webintenta@webintenta.com