Este es el script con problemas:
Código PHP:
<?
set_time_limit(0); //Tiempo de ejecucion ilimitado
$dir=$_GET["dir"];
if ($dir!="")
{
$directorio = dir("$dir");
while($fichero=$directorio->read())
{
if ($fichero!="." && $fichero!=".." && $fichero!="thumbs" && $fichero!="agua")
{
$archivo = explode(".", $fichero);
$origen_nombre=$archivo['0'];
$origen=$dir.$fichero;
$destino=$dir.$origen_nombre."b.jpg";
$destino_temporal=tempnam("/tmp","tmp");
redimensionar_jpeg($origen, $destino_temporal, 640, 480, 100);
// guardamos la imagen
$fp=fopen($destino,"w");
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
fclose($fp);
// mostramos la imagen
chmod($destino,777);
echo "<img src='$destino' border=\"0\"> ";
}
}
$directorio->close();
}
else
{ ?>
<FORM action="crear_thumbs.php" method="GET">
Nomnbre del directorio: <INPUT type="text" name="dir" value="fotos/" size="40"> <INPUT type="submit" value="Enviar">
</FORM>
<?php }
function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
// crear una imagen desde el original
$img = ImageCreateFromJPEG($img_original);
// crear una imagen nueva
$thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
// redimensiona la imagen original copiandola en la imagen
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
// guardar la nueva imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
ImageDestroy($img);
}
?>
El problema surge cuando hay muchas fotos en la carpeta donde estan las fotos (si hay pocas fotos funciona barbaro), me toma como foto original a las copias y me empieza a crear archivos fotobb.jpg, fotobbb.jpg, etc.... y esto me cuelga el server ya que se forma un bucle muuuuuy largo.
Hay alguna forma de evitar eso con alguna funcion o algo?
Saludos y espero sus respuestas,
Gracias