Foros del Web » Programando para Internet » PHP »

Expresion Regular para detectar imagen

Estas en el tema de Expresion Regular para detectar imagen en el foro de PHP en Foros del Web. Hola, les cuento, ya busqué, ya leí... pero no lo he podido hacer... Tengo este script Código PHP: <?php     $directorio  =  'logos/' ;      $abrir  ...
  #1 (permalink)  
Antiguo 20/06/2008, 17:53
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Expresion Regular para detectar imagen

Hola, les cuento, ya busqué, ya leí... pero no lo he podido hacer...

Tengo este script

Código PHP:
<?php
    $directorio 
'logos/';
    
$abrir opendir($directorio);
    while (
$logo readdir($abrir))
    {
        print 
'<img src="logos/'.$logo.'" />'
    }

?>
Simple, tengo una serie de logos en .jpg en un directorio, lo abro, las lista, etc.

Hasta ahi todo bien.

El problema es qu eInternet Explorer me muestra dos espacios en blanco, supongo que serán archivos de sistema ocultos, lo que necesito entonces es hacer que el script me tome solo los archivos terminados en .jpg

Mil gracias si me pueden ayudar.

Saludos.

Edito:

Al ver el código fuente esto es lo que sale

Código HTML:
<img src="logos/." /><img src="logos/.." /><img src="logos/logo1.jpg" /> 
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"

Última edición por lucasan; 20/06/2008 a las 18:06
  #2 (permalink)  
Antiguo 20/06/2008, 18:24
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Respuesta: Expresion Regular para detectar imagen

SOLUCIONADO

Definitivamente no me entiendo con las Expresiones Regulares, pero no conocía el uso de explode

Lo hice así por si a alguien le sirve, me basé en algo que encontré en el foro:

Código PHP:
<?php
    $directorio 
'logos/';
    
$abrir opendir($directorio);
    while (
$archivo readdir($abrir))
    {
        
$imagen explode("."$archivo);
        
$nombre $imagen[0];
        
$extension $imagen[1];
        
        if (
$extension == "jpg")
        {
            print 
'<img src="logos/'.$imagen[0].'.'.$imagen[1].'" />';
        } 
    }
?>
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #3 (permalink)  
Antiguo 20/06/2008, 18:52
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Expresion Regular para detectar imagen

Cuando cargas un directorio aparece una lista con los elementos, pero también "." y "..", es decir:

Código:
.
..
imagen1.jpg
imagen2.jpg
imagen3.jpg
Por eso también podemos evitar "." y ".." de la siguiente manera:

Código PHP:
<?php
    $directorio 
'logos/';
    
$abrir opendir($directorio);
    while (
$logo readdir($abrir))
    {
       if (
$logo != "." && $logo != ".." )
           {
            print 
'<img src="logos/'.$logo.'" />'
           }
    }

?>
  #4 (permalink)  
Antiguo 20/06/2008, 19:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresion Regular para detectar imagen

me gustaría ayudar un poco con lo de las expresiones, con algo fundamental y realmente útil

Ejemplo:
#\.(jpe?g|png|gif)$#

# separador (es)
\. punto (escapado)
() grupo (reserva)
| separador
? opcional
$ al final

con esta expresión, básicamente buscamos... cualquier final de cadena que comience por un punto, seguido de alguna de las palabras del grupo

en esta forma, básicamente buscamos una extensión de las citadas a prueba, con la certeza de tomar tanto jpeg como jpg (gracias al comodín ?)

- esta expresión se aplica fácil, depende de la función... match o replace

uso / como separadores, y con esto conseguimos "validar" y capturar las extensiones de entre, php, phps, xhtml, xhtm, html, htm -y se captura solo dentro de los parentesis
Código PHP:
if (preg_match('/\.(phps?|x?html?)$/'$archivo$test)) // significa, TRUE
// opcionalmente almacenamos la captura, entre parentesis ()
  
print_r($test);

espero le sea útil a alguien, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 20/06/2008 a las 20:04
  #5 (permalink)  
Antiguo 21/06/2008, 00:20
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 16 años, 10 meses
Puntos: 59
Respuesta: Expresion Regular para detectar imagen

Muchas gracias, muy buenos aportes, tendré qu eestudiar mucho mas las expresiones regulares y las funciones php para estas.

Saludos.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:12.