Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] remover 1 guion de los extremos de una cadena.

Estas en el tema de remover 1 guion de los extremos de una cadena. en el foro de PHP en Foros del Web. Que tal, estoy tratando de remover el guion medio del principio y del final de una cadena, pero aun no se como se hace. trate ...
  #1 (permalink)  
Antiguo 20/01/2015, 12:41
Avatar de Camarex  
Fecha de Ingreso: enero-2003
Ubicación: Monterrey NL
Mensajes: 148
Antigüedad: 21 años, 10 meses
Puntos: 0
Pregunta remover 1 guion de los extremos de una cadena.

Que tal, estoy tratando de remover el guion medio del principio y del final de una cadena, pero aun no se como se hace.

trate con trim() pero cuando hay dos guiones segidos -- los borra todos y solo necesito que borre uno. También traté con substr() pero no se como validar si el caracter a eliminar es un guion o no. He visto otras funciones pero no las comprendo muy bien

Las cadenas de entrada pueden ser algo asi:

-loquesea-
-loquesea
loquesea-
--loquesea
loquesea--

¿como se podria hacer para eliminar un solo guion de cada lado? o si solo aparece un guion al final o al principio, eliminar solo ese?

agradeceria infinitamente la ayuda de esta comunidad.
__________________
Si el empleo fuera como rentar una casa, entonces no rentes para siempre y busca la manera de Comprar. ;-)
Frase: Edgar Camarena
  #2 (permalink)  
Antiguo 20/01/2015, 15:25
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: remover 1 guion de los extremos de una cadena.

Publica el código que estas usando si quieres que alguien se tome un tiempo para orientarte
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 20/01/2015, 17:44
 
Fecha de Ingreso: enero-2015
Mensajes: 43
Antigüedad: 9 años, 11 meses
Puntos: 3
Respuesta: remover 1 guion de los extremos de una cadena.

Código PHP:
<?php

$lista
=array("-loquesea-","-preciado""he-man""Massa--""-0-1-0-");

foreach(
$lista as $texto){
 echo 
preg_replace("/^\-+|\-+$/"""$texto)

echo 
preg_replace("/^\-+|\-+$/"""$texto,1)

}
[URL="http://codepad.org/eVhUCIzE"]http://codepad.org/eVhUCIzE[/URL]

Última edición por germangutierrez; 20/01/2015 a las 18:04
  #4 (permalink)  
Antiguo 20/01/2015, 22:21
Avatar de Camarex  
Fecha de Ingreso: enero-2003
Ubicación: Monterrey NL
Mensajes: 148
Antigüedad: 21 años, 10 meses
Puntos: 0
Respuesta: remover 1 guion de los extremos de una cadena.

Mil gracias German Gutierrez.

Al final quedó así.

Código PHP:
    $variable1 "-valor1";
    
$variable2 "";
    
$variable3 "valor3";
    
$variable4 ="hola-";
    
    
$link $variable1."-".$variable2."-".$variable3."-".$variable4;
    
$link preg_replace("/-+/""-"$link); // Reemplaza guiones seguidos por un guion
    
$link preg_replace("/^\-|\-$/"""$link); // Eliminio un solo guion de cada extremo
    
    
echo $link
Esto imprime: valor1-valor3-hola

Lo de las expresiones regulares está genial.

La cadena de la que hablaba la estoy utilizando para hacer url amgables y como varía la cantidad de links y valores, me estaban haciendo ruido esos guiones.

Gracias de nuevo
__________________
Si el empleo fuera como rentar una casa, entonces no rentes para siempre y busca la manera de Comprar. ;-)
Frase: Edgar Camarena

Etiquetas: remover
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 09:08.