PHP - Validacion - No encuentro el error

 
Vista:
sin imagen de perfil

Validacion - No encuentro el error

Publicado por Lucas (2 intervenciones) el 04/09/2013 21:56:45
No encuentro el error ! Por favor ayuda..! Gracias....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
echo "<h1>Tabla de fotos con enlace</h1>";
 
function valida_fotos($fotos){
    $rdo=0;
    if(preg_match("/[Jj][Pp][Gg]$/",$fotos))rdo=1;
    if(preg_match("/[Gg][Ii][Ff]$/",$fotos))rdo=1;
    if(preg_match("/[Pp][Nn][Gg]$/",$fotos))rdo=1;
    if(preg_match("/[Bb][Mm][Pp]$/",$fotos))rdo=1;
return $rdo;
}
echo "<table border=1>";
$puntero=opendir('fotos');
$i=1;
while (false!==($foto=readdir($puntero))){
    if($foto!="."&&$foto!=".."&&valida_envia($foto)){
        if($i==1)
        echo "<tr>";
        echo "<td><a href='fotos/$foto'>";
        echo "<img src='fotos/$foto'width=100 height=100</img>";
        echo "</a></td>";
        if($i==4){
            echo "<tr>";$i=0;}
            $i++;
    }
}
closedir($puntero);
echo "</table>";
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validacion - No encuentro el error

Publicado por xve (6935 intervenciones) el 04/09/2013 22:35:44
Hola Lucas, pero que error te da? o que es lo que debería de hacer y no hace?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Validacion - No encuentro el error

Publicado por Mari Carmen (145 intervenciones) el 22/09/2013 20:30:34
Esta seria una pequeña edicion de tu texto. Se han cambiado varias funciones y he remarcado otras donde creo que tienes fallos.
He añadido tambien saltos de linea y tabulaciones ya que no puedo ejecutarlo nada mas que en CLI y asi es mas vistoso.
Otro apaño es la utilizacion de modulo para no tener que resetear la variable $i y ademas he optado por un scandir()
He cambiado el bucle por un foreach.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?
echo "<h1>Tabla de fotos con enlace</h1>\n\n";
 
/* Tu funcion era muy larga. Ademas ni la anterior ni esta
 * comprueban si es un archivo o un directorio con nombre
 * terminado en .gif,jpg... deberias usar is_file();
 *
 * El REGEX que hay puesto no distingue entre mayusculas y minusculas
 */
function valida_fotos($fotos)
{
	$rdo=preg_match("/\.(?:jpg|jpeg|gif|png|bmp)$/i",$fotos);
	return $rdo;
}
 
echo "<table border=1>\n";
 
$dir= 'fotos';
$fotos = array_diff(scandir($dir), array('..', '.'));
 
$i=0;
foreach($fotos as $foto)
{
	if(valida_envia($foto))//Supongo que quieres decir valida_fotos().
	{
		if($i%4==0)
			echo "\t<tr>\n";
 
		echo "\t\t<td>\n".
			 "\t\t\t<a href='fotos/$foto'>\n".
			 "\t\t\t\t<img src='fotos/$foto'width=100 height=100</img>\n".
			 "\t\t\t</a>\n".
			 "\t\t</td>\n";
 
	    if($i%4==3)
	    	echo "\t<tr>\n";//Supongo que querras decir </tr>
	    $i++;
	}
}
//Este if sirve para poner el ultimo </tr> si no se ha puesto anteriormente.
if($i%4!=3)
	echo "\t</tr>\n";
echo "</table>\n\n";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar