Foros del Web » Programando para Internet » PHP »

Ignorar ampersand para que no tome como variable

Estas en el tema de Ignorar ampersand para que no tome como variable en el foro de PHP en Foros del Web. Hola compañeros buenos Dias Una duda tengo el nombre de un equipo celular para mostrar una imagen Código PHP: $ruta  =  "intranet/recursos/imagenes/equipos/Alcatel802Black&Silver.jpg" ; echo  '<img src=' ...
  #1 (permalink)  
Antiguo 26/08/2011, 08:46
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Ignorar ampersand para que no tome como variable

Hola compañeros

buenos Dias

Una duda tengo el nombre de un equipo celular para mostrar una imagen


Código PHP:
$ruta "intranet/recursos/imagenes/equipos/Alcatel802Black&Silver.jpg";
echo 
'<img src='.$ruta.'>'
El problema es que el nombre de la imagen tiene un ampersand y php lo toma como la separacion de variables...

puedo decirle en este caso a PHP que no lo tome de esa manera si no como un string ...

Gracias
  #2 (permalink)  
Antiguo 26/08/2011, 08:50
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: Ignorar ampersand para que no tome como variable

la solucion mas sencilla es no usar esos simbolos en los nombres de los archivos
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #3 (permalink)  
Antiguo 26/08/2011, 08:55
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Ignorar ampersand para que no tome como variable

Hola compa

si tienes razon , esa es la mas correcta solucion, pero igual son nombres estrictos, por lo tanto no puedo cambiarlo,

Gracias
  #4 (permalink)  
Antiguo 26/08/2011, 09:04
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 10 meses
Puntos: 96
Respuesta: Ignorar ampersand para que no tome como variable

Saludos

No debería haber ningún inconveniente con el & no se por que indicas que php lo toma como la separación de variables. A no ser que lo estés enviado por get
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 26/08/2011, 09:06
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Ignorar ampersand para que no tome como variable

mmm compa

si pues recibo el nombre por GET, pero cual seria el inconveniente?
  #6 (permalink)  
Antiguo 26/08/2011, 09:06
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: Ignorar ampersand para que no tome como variable

En teoría, una cadena no se evalúa si no la pasas por eval(). Estás seguro que el error es por eso?

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #7 (permalink)  
Antiguo 26/08/2011, 09:11
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Ignorar ampersand para que no tome como variable

Hola compa

Si estoy seguro que ese es el problema, porque hago la prueba cambiandole el ampesard por un _ guion bajo , y si me muestra la imagen .... por eso digo que lo toma por separacion de variable

Gracias
  #8 (permalink)  
Antiguo 26/08/2011, 09:14
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: Ignorar ampersand para que no tome como variable

Lo que dice Nano_ es cierto...
me causo mucha curiosidad, le coloque el & a una imagen y funciona normal,
si lo envias por GET claro que ahi problemas! por que las variables, exepto la primera se separan con ampersand intenta con POST
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #9 (permalink)  
Antiguo 26/08/2011, 09:15
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 14 años, 3 meses
Puntos: 45
Respuesta: Ignorar ampersand para que no tome como variable

el incoveniente seria que por GET te llega Alcatel802Black y
&Silver.jpg en otro lado, mira el codigo de fuente y cuentanos que ves en el src de tu imagen
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #10 (permalink)  
Antiguo 26/08/2011, 09:16
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Ignorar ampersand para que no tome como variable

Compañeros

Gracias a todos por la ayuda..

primero no puedo enviar los datos por post, y segundo voy a pensar seriamente en cambiar el nombre de la imagen , no veo de otra..

Gracias
  #11 (permalink)  
Antiguo 26/08/2011, 09:17
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 10 meses
Puntos: 96
Respuesta: Ignorar ampersand para que no tome como variable

Saludos!

Podrias hacer como bien te indica malakian, enviar tu variable por POST o la otra seria que utilizaras algún algoritmo sencillo para codificar y decodificar urls de esos existen muchos por internet.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #12 (permalink)  
Antiguo 26/08/2011, 09:19
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Ignorar ampersand para que no tome como variable

Gracias Nano_

Si es una buena opcion, voy a checar por la web,

Gracias
  #13 (permalink)  
Antiguo 26/08/2011, 09:22
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: Ignorar ampersand para que no tome como variable

Puedes hacer un escape de los caracteres raros en el sitio en el que envías el link a la URL (con str_replace por ejemplo) y rehacer el cambio en la página destino.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #14 (permalink)  
Antiguo 26/08/2011, 09:33
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Ignorar ampersand para que no tome como variable

Hola vgonga1986

Es decir por ejemplo:

pagina.php


Código PHP:
$ruta "intranet/recursos/imagenes/equipos/Alcatel802Black&Silver.jpg"
$ruta_format str_replace("_","&",$ruta); 
pagina_destino.php

Código PHP:
$ruta $_GET['ruta'];
$ruta_format str_replace("&","_",$ruta);
echo 
'<img src='.$ruta_format .'>'
creeria que si funcionara

gracias.
  #15 (permalink)  
Antiguo 26/08/2011, 09:40
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 10 meses
Puntos: 96
Respuesta: Ignorar ampersand para que no tome como variable

Saludos

Yo creería que no funcionaria. Ya que si tienes por get mas de un parámetro por ejemplo


//www.pagina.php?pametro1=1&parametro2=2&.jpg&parame tro3=3
cuando hagas el replace quedaria
//www.pagina.php?pametro1=1_parametro2=2_.jpg_parame tro3=3
Como identificaras que es un parámetro o es la asignación a un parámetro?
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #16 (permalink)  
Antiguo 26/08/2011, 09:51
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: Ignorar ampersand para que no tome como variable

No tienes que hacer el replace de todo el chorizo, sólo del contenido del parámetro que sea susceptible de tener un &, de lo demás no se toca nada y listo.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #17 (permalink)  
Antiguo 26/08/2011, 09:56
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Ignorar ampersand para que no tome como variable

hola


exacto solo se hace en lo que se necesita ..

Gracias
  #18 (permalink)  
Antiguo 26/08/2011, 10:00
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 10 meses
Puntos: 96
Respuesta: Ignorar ampersand para que no tome como variable

Pues si, no jejejeej
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #19 (permalink)  
Antiguo 26/08/2011, 10:03
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Ignorar ampersand para que no tome como variable

Gracias
  #20 (permalink)  
Antiguo 26/08/2011, 11:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Ignorar ampersand para que no tome como variable

Lo mejor:
Código PHP:
Ver original
  1. $file = "/ruta/al/archivo&con&simbolos.jpg";
  2. $ruta = rawurlencode($file);

Código PHP:
Ver original
  1. $ruta = rawurldecode($_GET['ruta']);
  2. echo "<img src=\"$ruta\" border=\"0\" />";

Saludos.
  #21 (permalink)  
Antiguo 26/08/2011, 11:27
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Ignorar ampersand para que no tome como variable

Hola GatorV

voy a probar esa opcion.... gracias por el aporte...

  #22 (permalink)  
Antiguo 26/08/2011, 11:47
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Ignorar ampersand para que no tome como variable

Hola

Gracias a todos por los aportes

a la final quedo asi:


mostrar_imagen.php

Código PHP:
Ver original
  1. $nom_image = "Alcatel802Black&Silver.jpg";
  2. $nom_image_encode = urlencode($nom_image);
  3. echo '<a href="imagen.php?img='.$nom_image_encode.'&marca=Alcatel Full"> Ver  Alcatel802Black&Silver </a>';


imagen.php

Código PHP:
Ver original
  1. $ruta_image_decode = urldecode($_GET['img']);
  2. $marca = $_GET['marca'];
  3. echo '<img src="images/'.$ruta_image_decode.'" title="<?php echo $marca; ?>" />';

Jeje ... funciono jeje..

Graciasss

Etiquetas: ampersand, ignorar, variables
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:10.