PHP + Getimagesize = Problema

Publicado por demono, Noviembre 30, 2008, 19:32:02

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

demono

Hola, estoy desarrollando un script para generar código para la inserción de imágenes en distintos espacios de una Web. Ahora bien, ese código necesita ancho y alto en px de la imagen, para eso usé la funcion getimagesize. El script montado en mi PC funciona perfecto sin importar cuantas ponga, el tema viene a ser que al subirlo a mi hosting y al insertar varias imagenes (Dattach*t es el hosting, puede ser que por ahí venga el problema) me tira el siguiente error:

CitarWarning: getimagesize(http://images3.webpark.ru/uploads35/pipe_hotel_000.jpg ) [function.getimagesize]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/od000105/public_html/mzarg2/generator.php on line 36

Lo curioso es que ese error aparece en todas las imagenes a excepción de la última por lo que asumo que será un problema de carga de las imágenes, aunque en mi PC eso funciona sin problemas).


URL del script subido al Hosting: http://skillermz.com/mzarg2/
URL del script montado en mi PC con Appserv: http://190.17.117.135/mzarg2/


Las lineas de código a las que hace referencia el error:

35 $imageurl = $imagenes[$i];
36 $tamaño = getimagesize($imageurl);
37
37
38 echo "<span class=arial><br><br><b>Código para Imagen:</b><br>".$imageurl."<br>";
39
40
41 $width=$tamaño[0];
42 $height=$tamaño[1];



Pueden probar con las siguientes URL (Peguenlas tal como están, una abajo de la otra)
http://images3.webpark.ru/uploads35/pipe_hotel_000.jpg
http://images3.webpark.ru/uploads35/pipe_hotel_001.jpg
http://images3.webpark.ru/uploads35/pipe_hotel_002.jpg
http://images3.webpark.ru/uploads35/pipe_hotel_003.jpg
http://images3.webpark.ru/uploads35/pipe_hotel_004.jpg
http://images3.webpark.ru/uploads35/pipe_hotel_005.jpg
http://images3.webpark.ru/uploads35/pipe_hotel_006.jpg

CPU X2 7750 | 2x1GB DDR2 800Mhz OCZ | VGA MSI 9600GT OC | Power Supply Powercooler Type R Modular 550w | 2x320GB HDD WD Caviar | Gabinete VTB Rock

Camello_AR

Me suena a un problema de tu hosting, tal como decis, alguna limitación de llamadas externas o algo así

demono

La unica diferencia que encuentro es que el hosting tiene la version 4.4.4 y yo la 5...podrá ser eso?

CPU X2 7750 | 2x1GB DDR2 800Mhz OCZ | VGA MSI 9600GT OC | Power Supply Powercooler Type R Modular 550w | 2x320GB HDD WD Caviar | Gabinete VTB Rock

Predicador

#3
EDIT: perdon, acabo de ver el error verdadero asi que borre mi previo mensaje.
Fijate que te esta tomando las url de las imagenes mal:
"htt&#112://images3.webpark.ru/uploads35/pipe_hotel_000.jpg " <-- se ve ese espacio? entre la g y las comillas?
EDIT: por lo que veo en al salida de tu script, donde dice código generado, luego del nombre de la imagen hay un retorno de carro, eso esta haciendo que el getimagesize no ande.
Baii
En la mayoría de las comunidades online el 90% de los usuarios son mirones que nunca contribuyen, el 9% contribuyen un poco y el 1% son los responsables de casi toda la acción. Nielsen

demono

#4
En efecto, esto parece ser asi. El tema es que sucede en todos menos en la última.

Armé el codigo para que reemplace el espacio (" ") por nada ("") y sigue igual.

$imageurl = $imagenes[$i];
$imageurl = str_replace ( " ", "", $imageurl );
echo $imageurl."-espacio";



En todos aparece
"http://images3.webpark.ru/uploads35/pipe_hotel_006.jpg -espacio"

Menos en la última que aparece
"http://images3.webpark.ru/uploads35/pipe_hotel_006.jpg-espacio"

Lo que me inquieta es que en mi PC aparecen todos como la útima imagen, sin espacio  :-\

CPU X2 7750 | 2x1GB DDR2 800Mhz OCZ | VGA MSI 9600GT OC | Power Supply Powercooler Type R Modular 550w | 2x320GB HDD WD Caviar | Gabinete VTB Rock

demono

#5
El código del script es el siguiente (Omito el form de arriba y el textarea de abajo ya que no vienen al caso)

$imagenes=$_POST["imagenes"];
$imagenes = str_replace ( "
", "^", $imagenes );
$imagenes = explode("^", $imagenes);
$cantidad = count($imagenes);
$i = 0;






for($i=0;$i<$cantidad;$i++)
{

if ($imagenes[$i]!="")
{
$imageurl = $imagenes[$i];
$tamaño = getimagesize($imageurl);


echo "<span class=arial><br><br><b>Código para Imagen:</b><br>".$imageurl."<br>";


$width=$tamaño[0];
$height=$tamaño[1];

echo "<b>Vista en miniatura</b><br>";
if ($width>150)
{
echo "<img src=".$imageurl." width=150><br>";
}
else
{
echo "<img src=".$imageurl."><br>";
}



$imageurl = str_replace ( "http://", "htt&amp;#112://", $imageurl );







echo "El ancho de la imagen es ".$width." y el alto ".$height."<br><br><b>Código para Guestbook / Foro:</b><br>";
echo "&lt;p style=background-image:url(&quot;".$imageurl."&quot;);width:".$width.";height:".$height."&gt;&lt;/p&gt;";

echo "<hr>";
$codigo[$i] = "&lt;p style=background-image:url(&quot;".$imageurl."&quot;);width:".$width.";height:".$height."&gt;&lt;/p&gt;";


}

}







Acabo de probar en otro hosting (Este en g2khosting, no en dattatec) y pasa lo mismo, no tira el error pero tampoco toma el tamaño de la imagen salvando en la última imagen

La URL del otro hosting:
http://relojes-express.com/mzarg2/

CPU X2 7750 | 2x1GB DDR2 800Mhz OCZ | VGA MSI 9600GT OC | Power Supply Powercooler Type R Modular 550w | 2x320GB HDD WD Caviar | Gabinete VTB Rock

Predicador

Hola, a decir verdad el espacio no es un espacio, sino un retorno de carro.
Te recomiendo que cambies:
$imagenes=$_POST["imagenes"];
$imagenes = str_replace ( "
", "^", $imagenes );
$imagenes = explode("^", $imagenes);

por:
$imagenes = explode("\n", $_POST['imagenes']);
Y tu problema deberia estar resuelto (el \n es el avance de linea en los *nix, en tu maquina [windows] deberias poner \r\n).
Baii
En la mayoría de las comunidades online el 90% de los usuarios son mirones que nunca contribuyen, el 9% contribuyen un poco y el 1% son los responsables de casi toda la acción. Nielsen

demono

Cita de: Predicador en Noviembre 30, 2008, 22:52:42
Hola, a decir verdad el espacio no es un espacio, sino un retorno de carro.
Te recomiendo que cambies:
$imagenes=$_POST["imagenes"];
$imagenes = str_replace ( "
", "^", $imagenes );
$imagenes = explode("^", $imagenes);

por:
$imagenes = explode("\n", $_POST['imagenes']);
Y tu problema deberia estar resuelto (el \n es el avance de linea en los *nix, en tu maquina [windows] deberias poner \r\n).
Baii


Hecho y no funcionó, tira exactamente el mismo error y el espacio ese es lo que parece estar jodiendo  :(

CPU X2 7750 | 2x1GB DDR2 800Mhz OCZ | VGA MSI 9600GT OC | Power Supply Powercooler Type R Modular 550w | 2x320GB HDD WD Caviar | Gabinete VTB Rock

Predicador

hmmm, que raro, eso deberia haber solucionado el problema!
A no ser que tu hosting este corriendo sobre windows, en tal caso deberias poner \r\n en vez de solo \n
Baii
En la mayoría de las comunidades online el 90% de los usuarios son mirones que nunca contribuyen, el 9% contribuyen un poco y el 1% son los responsables de casi toda la acción. Nielsen

demono

Cita de: Predicador en Noviembre 30, 2008, 23:16:59
hmmm, que raro, eso deberia haber solucionado el problema!
A no ser que tu hosting este corriendo sobre windows, en tal caso deberias poner \r\n en vez de solo \n
Baii

Ambos hosting corren Linux (Son hosting distintos, no creo que me esten cagando de los 2 lados), pero probé con \r\n y funcionó

Mil gracias predi, de verdad :wave: :wave: :wave:

CPU X2 7750 | 2x1GB DDR2 800Mhz OCZ | VGA MSI 9600GT OC | Power Supply Powercooler Type R Modular 550w | 2x320GB HDD WD Caviar | Gabinete VTB Rock