Foros del Web » Programando para Internet » PHP »

Como saber si una variable dada termina en / y al mismo tiempo quitarselo

Estas en el tema de Como saber si una variable dada termina en / y al mismo tiempo quitarselo en el foro de PHP en Foros del Web. Hola amigos, A ver si uno me ayuda con esta sintaxis en PHP, que no tengo ni idea como se hace, pero me imagino que ...
  #1 (permalink)  
Antiguo 16/04/2010, 09:26
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 8 meses
Puntos: 0
Como saber si una variable dada termina en / y al mismo tiempo quitarselo

Hola amigos,

A ver si uno me ayuda con esta sintaxis en PHP, que no tengo ni idea como se hace, pero me imagino que es posible:

Yo tengo una variable $req_user, que necesito saber si termina en / para luego sacarle ese /.

Algoritmo:

Si "$req_user" termina en / hacer una variable "$req_user_sin_slash" para despues hacer un redirect hacia "$req_user_sin_slash"
header("Location: /$req_user_sin_slash");

Alguna idea de como seria la sintaxis en PHP para esto ?
  #2 (permalink)  
Antiguo 16/04/2010, 09:33
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Como saber si una variable dada termina en / y al mismo tiempo quitarselo

podrias revisar la funcion rtrim() de php.. creo que es lo que buscas
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 16/04/2010, 09:59
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Como saber si una variable dada termina en / y al mismo tiempo quitarselo

Gracias hideK1 por la respuesta,

Me parece muy buena esa funcion para otra tarea, pero por lo que veo sobre ella lo que te hace es que elimina en de una vez la variable, y yo necesito primero saber si la variable termina en /
Por ejemplo: mi variable puede ser "$req_user = carlos/" o "$req_user = carlos" para lo que primero necesito es saber si la variable termina en / y si termina quitarselo.
  #4 (permalink)  
Antiguo 16/04/2010, 10:07
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Como saber si una variable dada termina en / y al mismo tiempo quitarselo

pero luego necesitas nuevamente la variable con el / ?
por que si no es ese el caso (tal y como se entiende en lo que dices) rtrim sirve perfecto
ahora si luego de todas formas necesitaras usar la variable con /
podrias usar una condicion con regex ... preg_match

ejemplo
Código PHP:
Ver original
  1. if(preg_match('#/$#', $req_user)){
  2.    $req_user_sinslash = rtrim($req_user, "/");
  3. }

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 16/04/2010, 10:19
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Como saber si una variable dada termina en / y al mismo tiempo quitarselo

muchas GRACIAS hidek1, me resulto de mucha ayuda tus tips para finalemente obtener este codigo que era el que necesitaba.

Código PHP:
Ver original
  1. $largo = strlen($req_user);
  2. $subcadena = substr($req_user,$largo-1);
  3. if($subcadena == "/"){
  4. $req_user_sinslash = rtrim($req_user, "/");
  5. header( "HTTP/1.1 301 Moved Permanently" );
  6. header("Location: /profiles/".$req_user_sinslash);
  7. }
  #6 (permalink)  
Antiguo 16/04/2010, 10:22
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Como saber si una variable dada termina en / y al mismo tiempo quitarselo

Código PHP:
Ver original
  1. header( "HTTP/1.1 301 Moved Permanently" );
  2. header("Location: /profiles/".rtrim($req_user, '/'));

=) de nada...
__________________
More about me...
~ @rhyudek1
~ Github

Etiquetas: 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 16:32.