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

0 - , - 05/02/2009 06:55:00

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"

Deja tu comentario

  • El comentario debe estar relacionado con el contenido de la entrada.
  • Comentarios ofensivos, con spam o con lenguaje inapropiado serán eliminados.

captcha