Generación de miniaturas caprichosas en script PHP dinámico

Este fragmento de secuencia de comandos comprueba si existe un archivo en un directorio y crea una miniatura. ¿Por alguna razón, antes de la miniatura _1.jpg, se crea una miniatura vacía con solo un .jpg? ¿Dónde está sucediendo esto, puedo rastrearlo?

Aquí hay una pequeña URL del problema para ver... lo mejor es probar en IE, ya que Firefox lo elimina automáticamente: http://tinyurl.com/c6o2yts

<?
                                    $image = "<br>";
                                    $ListingRid = $row['ListingRid'];                                   
                                    $img_cnt = 1;
                                    $image .= "<a href=/feeds/fmfl/rets_images/$ListingRid_1.jpg rel=enlargeimage::mouseover rev=loadarea><img src=/feeds/fmfl/rets_images/$ListingRid_1.jpg alt='' width='100' height='75' border='0' /></a>&nbsp;";
                                    for ($c=1;$c<10;$c++) {
                                        $c_ext = $c;
                                        if (file_exists("/var/www/vhosts/domain.com/httpdocs/feeds/fmfl/rets_images/{$ListingRid}_{$c_ext}.jpg"))
                                            $image .= "<a href=/feeds/fmfl/rets_images/{$ListingRid}_{$c_ext}.jpg rel=enlargeimage::mouseover rev=loadarea><img src=/feeds/fmfl/rets_images/{$ListingRid}_{$c_ext}.jpg alt='' width='100' height='75' border='0' /></a>&nbsp;";
                                        else
                                            $c=12;

                                        $img_cnt++;
                                        if ($img_cnt == 3) {
                                            $image .= "<br>";
                                            $img_cnt = 0;
                                        }

                                    }

                                    ?>  

preguntado el 03 de mayo de 12 a las 22:05

1 Respuestas

El problema esta aqui:

$image .= "<a href=/feeds/fmfl/rets_images/$ListingRid_1.jpg rel=enlargeimage::mouseover rev=loadarea><img src=/feeds/fmfl/rets_images/$ListingRid_1.jpg alt='' width='100' height='75' border='0' /></a>&nbsp;";

Y más concretamente aquí:

$ListingRid_1.jpg

PHP permite guiones bajos y números enteros en nombres de variables. Así que mientras quieres que encuentre $ListingRid . "_1", PHP interpreta el nombre de la variable como $ListingRid_1, que no existe.

Podrías usar corchetes, para que se convierta en

$image .= "<a href=/feeds/fmfl/rets_images/{$ListingRid}_1.jpg rel=enlargeimage::mouseover rev=loadarea><img src=/feeds/fmfl/rets_images/{$ListingRid}_1.jpg alt='' width='100' height='75' border='0' /></a>&nbsp;";



También: como un aparte, una mejor manera de salir de un for loop temprano es usar break.

contestado el 03 de mayo de 12 a las 23:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.