Inicio Apuntes FPApuntes DAWDesarrollo Web en Entorno Servidor Ejercicio Básico 34: Cómo crear una galería de imágenes con PHP

Ejercicio Básico 34: Cómo crear una galería de imágenes con PHP

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

Si la cosa fuese correlativa, este sería el ejercicio básico 33 de PHP. Pero como me hizo más gracia este ejercicio, me puse con el en un rato libre que he tenido hoy. Próximamente publicaré el 33, pero vamos, tampoco hay prisa, ya que ese ejercicio no es más que la continuación del ejercicio 32 que ya he publicado y la verdad es que me resultan muy aburridas las segundas partes. Por el momento vamos a por el ejercicio número 34 en el que montaremos de manera sencilla una galería de imágenes.

El ejercicio a desarrollar hoy será algo como que vamos a hacer una página Web que contenga las fotografías de un viaje para mostrárselo a quien nos venga en gana. Nuestro programa debe escanear un directorio que contiene fotografías. Va a generar dinámicamente una página Web que las muestre como si tratase una galería de fotos.

Notas: Hay que tener en cuenta los errores que se puedan producir por no existir el directorio, no haber imágenes, etc… Las extensiones de archivo permitidas son: ‘gif’, ‘jpg’, ‘jpeg’, ‘tif’, ‘tiff’, ‘bmp’, ‘png’
Funciones que se pueden utilizar: file_exists, opendir, readdir, pathinfo, in_array, aun que yo no utilizo todas ellas, funciona perfectamente. Para compensarlo añado una función para generar una estructura de directorios.

Un ejemplo de lo que se consigue con el código que a continuación dejaré se puede ver haciendo click aquí. Una vez explicado el asunto del ejercicio, vamos al turrón del mismo.

El código para la creación de nuestra galería de imágenes con PHP:

<?php
	/**
	* Función que muestra la estructura de directorios tomando como referencia
         * el directorio que se le pasa como parámetro
	*/
	function obtener_estructura_directorios($ruta){
		
		// Se comprueba que realmente sea la ruta de un directorio
		if (is_dir($ruta)){
			// Abre el directorio que pasamos como parámetro
			$gestor = opendir($ruta);
			//Abrimos una lista
                        echo "<ul>";

			// Recorre todos los elementos del directorio
			while ($archivo = readdir($gestor))  {
				
				$ruta_completa = $ruta . "/" . $archivo;

				// Se muestran todos los archivos y carpetas excepto "." y ".."
				if ($archivo != "." && $archivo != "..") {
					// Si es un directorio se recorre recursivamente
					if (is_dir($ruta_completa)) {
						echo "<li>" . $archivo . "</li>";
						obtener_estructura_directorios($ruta_completa);
					} else {
                                        // En caso de que no sea un directorio es un archivo
						echo "<li>" . $archivo . "</li>";
					}
				}
			}
			// Cierra el gestor de directorios
			closedir($gestor);
			echo "</ul>";
		} else {
			echo "No es una ruta de directorio valida<br/>";
		}
		
	}

	/**
	* Función que muestra las imagenes que hay en la ruta pasada como parametro
	*/
	function mostrar_imagenes($ruta){
             echo "<h1>...en el directorio ".pathinfo($ruta,PATHINFO_BASENAME)."...</h1><br>";
                $contador=0;
		// Se comprueba que realmente sea la ruta de un directorio
		if (is_dir($ruta)){
			// Abre un gestor de directorios para la ruta indicada
			$gestor = opendir($ruta);

			// Recorre todos los archivos del directorio
			while (($archivo = readdir($gestor)) !== false)  {
				// Solo buscamos archivos sin entrar en subdirectorios
				if (is_file($ruta."/".$archivo)) {
                                     if (preg_match( "/.gif$/", $archivo) || 
                                             preg_match("/.jpg$/", $archivo) || 
                                             preg_match("/.png$/", $archivo) || 
                                             preg_match("/.jpeg$/",$archivo) || 
                                             preg_match ("/.tif$/",$archivo) ||
                                             preg_match ("/.tiff$/",$archivo) || 
                                             preg_match("/.bmp$/",$archivo)){
                                        //Imprimimos la imagen con un ancho de 200px
					echo "<img src='".$ruta."/".$archivo."' width='200px' alt='".$archivo."' title='".$archivo."'>&nbsp;&nbsp;";
                                        //contador de imágenes
                                        $contador++;
                                     }
                                }
			
			}

                        echo "<br> <h1>... encontramos ".$contador." imágenes</b></h1>";    
			// Cierra el gestor de directorios
			closedir($gestor);
		} else {
			echo "No es una ruta de directorio valida<br/>";
		}
	}
?>

<html>
<head>
	<title>Ejercicio 34</title>
        <meta charset="UTF-8">
</head>
<body>
	<div>
            <h2><b>Estructura de directorios</b></h2>
                <!--llamamos a la funcion obtener_estructura_directorios del directorio actual-->
		<?php 
                obtener_estructura_directorios("./"); ?>
	</div>

	<div>
            <h2><b>Imagenes </b></h2>
                <!--llamamos a la función mostrar imagenes en el directorio img-->
		<?php
                mostrar_imagenes("img"); ?>
	</div>
    <h6>Las imágenes TIF y TIFF no se visualizan en el navegador. Se puede usar un plugin como <a href="http://www.alternatiff.com" title="AlternativeTiff">alternativetif</a><br>
        para poder verlas en el navegador</h6>
</body>
</html>

Y con esto doy por finalizado el este post. En el se ha podido ver hemos creado una galería de imágenes bastante funcional. Todo de manera fácil y sencilla con PHP y un poquito de HTML. Próximamente iré publicando más posts sobre este mundillo del PHP.

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.