Foros del Web » Programando para Internet » PHP »

No eliminar espacios de variable obtenida por get

Estas en el tema de No eliminar espacios de variable obtenida por get en el foro de PHP en Foros del Web. Buenas! Tengo un problema... necesito leer una variable obtenida por get para mostrar un contenido en base a eso. Por ej. existe www.miweb.com/index.php?nombre=Juan _ _ ...
  #1 (permalink)  
Antiguo 01/05/2010, 15:25
Avatar de Zuker  
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 164
Antigüedad: 17 años, 8 meses
Puntos: 1
No eliminar espacios de variable

Buenas!

Tengo un problema... necesito leer una variable obtenida por get para mostrar un contenido en base a eso.

Por ej. existe www.miweb.com/index.php?nombre=Juan _ _ _ _ Carlos (4 espacios)

Entonces yo leo

$nombre = $_GET['nombre'];

y luego lo imprimo, pero solo se me imprime 1 espacio, no 3.

Alguna idea?

Gracias
Saludos

Última edición por Zuker; 03/05/2010 a las 08:09
  #2 (permalink)  
Antiguo 01/05/2010, 15:34
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: No eliminar espacios de variable obtenida por get

debes escapar las cadenas pasadas por get, con js seria la función escape, con php la función urlencode, entonces los espacios se convertirían en %20:

www.miweb.com/index.php?nombre=Juan%20Carlos
  #3 (permalink)  
Antiguo 01/05/2010, 15:40
Avatar de Zuker  
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 164
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: No eliminar espacios de variable obtenida por get

Pero es lo mismo... si pongo 2 %20 ( %20 %20) lo toma como 1 solo
  #4 (permalink)  
Antiguo 03/05/2010, 08:08
Avatar de Zuker  
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 164
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: No eliminar espacios de variable obtenida por get

Me di cuenta que pasa con todas las variables... no solo con las obtenidas

pór ej

Código PHP:
Ver original
  1. $nombre = "juan        carlos";
  2.  
  3. echo $nombre;

Imprime "juan carlos"

Alguna idea?
  #5 (permalink)  
Antiguo 03/05/2010, 08:10
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: No eliminar espacios de variable obtenida por get

Este problema ya no es con PHP sino que todos los navegadores imprimen la información de esa forma. Si quieres ver si está haciendo correctamente lo que la variable está haciendo, mira el código fuente y vas a ver que si paso los datos de esa forma. Para poder lograr lo que estas indicando tienes que al imprimir cambiar los espacios a  .
Código PHP:
Ver original
  1. <?php
  2. $nombre = "juan        carlos";
  3. $nombre = str_replace(' ','&nbsp;',$nombre);
  4. echo $nombre;
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 03/05/2010, 08:51
Avatar de Zuker  
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 164
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: No eliminar espacios de variable obtenida por get

Perfecto... eso a la hora de imprimirlo en el navegador se soluciona.

Pero si yo quiero asociar esa variable junto a otra variable, no me sirve tener "&nbsp;"

Por ej:

Código PHP:
Ver original
  1. $nombre = "Juan     Carlos";
  2. $link_perfil = "http://www.miweb.com/perfil/".$nombre.".html";

Me explico?
  #7 (permalink)  
Antiguo 03/05/2010, 09:01
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: No eliminar espacios de variable obtenida por get

Se supone que no debes tener problemas porque como te indique en el navegador se ve como si fuera una sola línea pero en el código fuente vas a ver que sale como tu deseas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 03/05/2010, 09:09
Avatar de Zuker  
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 164
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: No eliminar espacios de variable obtenida por get

El tema es que yo quiero hacer un curl de esa variable

Por ej

Código PHP:
Ver original
  1. $curl_handle = curl_init();
  2.                             curl_setopt($curl_handle,CURLOPT_URL,$url);
  3.                             curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
  4.                             curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
  5.                             $buffer = curl_exec($curl_handle);
  6.                             curl_close($curl_handle);

Donde $url es la variable definida de este estilo

Código PHP:
Ver original
  1. $url = "http://www.miweb.com/perfil/".$nombre.".html";

y $nombre es "Juan Carlos";

Y al leer $url no me toma en cuenta los espacios
  #9 (permalink)  
Antiguo 03/05/2010, 09:14
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: No eliminar espacios de variable obtenida por get

Cita:
Iniciado por Zuker Ver Mensaje
Perfecto... eso a la hora de imprimirlo en el navegador se soluciona.

Pero si yo quiero asociar esa variable junto a otra variable, no me sirve tener "&nbsp;"

Por ej:

Código PHP:
Ver original
  1. $nombre = "Juan     Carlos";
  2. $link_perfil = "http://www.miweb.com/perfil/".$nombre.".html";

Me explico?
Hola, para hacer lo que decis tenes que usar urlencode.

Código PHP:
Ver original
  1. $nombre = "Juan     Carlos";
  2. $link_perfil = "http://www.miweb.com/perfil/".urlencode($nombre).".html";


Luego para leer las variables:
Código PHP:
Ver original
  1. $nombre = urldecode($_GET['nombre']);
  #10 (permalink)  
Antiguo 03/05/2010, 09:19
Avatar de Zuker  
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 164
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: No eliminar espacios de variable obtenida por get

Carlos

Ya habia intentado eso... el tema es que la url en donde yo hago curl no usa urlencode, sino que pasa los espacios directo.

Entonces yo estaria mandando
Código PHP:
Ver original
  1. "Juan++++Carlos"
cuando en realidad el contenido que tengo que leer esta en
Código PHP:
Ver original
  1. "Juan    Carlos"

Me explico?
  #11 (permalink)  
Antiguo 03/05/2010, 09:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: No eliminar espacios de variable obtenida por get

Como te indique no debes tener problemas. Te repito mira el código fuente. Vamos a suponer que tengo una dirección de esta forma
Código Codigo:
Ver original
  1. http://localhost/index.php?url=Juan       Carlos
Se convierte a esta
Código Codigo:
Ver original
  1. http://localhost/index?url=Juan%20%20%20%20%20%20%20Carlos
Si creas este código
Código PHP:
Ver original
  1. <?php
  2. echo $_GET['url'];
Mira el código fuente y vas a ver que sí tiene los espacios.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 03/05/2010, 09:27
Avatar de Zuker  
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 164
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: No eliminar espacios de variable obtenida por get

Recien intentando reemplazar los " " por "%20" creo que quedo andando ya que si los reconoce :D
  #13 (permalink)  
Antiguo 03/05/2010, 12:37
Avatar de Zuker  
Fecha de Ingreso: marzo-2007
Ubicación: Argentina
Mensajes: 164
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: No eliminar espacios de variable obtenida por get

Descubri que hay un problema... Obviamente los "+" los reconoce como espacios... no hay forma de que los tome como simbolos?

Miren esto

http://www.gametracker.com/server/200.43.192.180:27015/player/Tincho + IVA T! CS/

Yo necesito que tome los simbolos (Como en este caso los +) como ahi...

Saludos!
  #14 (permalink)  
Antiguo 03/05/2010, 12:44
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: No eliminar espacios de variable obtenida por get

el problema real parte de que en las url no deberias usar simbologia de ese tipo..
hay siertos caracteres que estan y que no estan permitidos.. para eso esta la funcion que te habian mencionado.. urlencode y urldecode.. prueba con ambas y ve que tal.. o cambia los nombres de los archivos en el servidor.
saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #15 (permalink)  
Antiguo 03/05/2010, 13:05
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 11 meses
Puntos: 89
Respuesta: No eliminar espacios de variable obtenida por get

Mejor usar underscore, o algún caracter para unir los nombres, ya sea un punto, un underscore como ya dije, un guión, alguna letra, etc, etc.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.

Etiquetas: eliminar, espacios, 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 14:10.