Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Reemplazar slash y corchetes con preg_replac

Estas en el tema de Reemplazar slash y corchetes con preg_replac en el foro de PHP en Foros del Web. Amigos tengo la siguiente cadena: [en]Your name[/en][es]Nombre[/es] Deseo obtener lo siguiente: Your name/Nombre Revisando el foro he podido hacerlo así con la funcion preg_replac e: ...
  #1 (permalink)  
Antiguo 22/01/2015, 15:54
Avatar de xplorador  
Fecha de Ingreso: enero-2002
Ubicación: Peru
Mensajes: 105
Antigüedad: 22 años, 3 meses
Puntos: 0
Reemplazar slash y corchetes con preg_replac

Amigos tengo la siguiente cadena:

[en]Your name[/en][es]Nombre[/es]

Deseo obtener lo siguiente:

Your name/Nombre


Revisando el foro he podido hacerlo así con la funcion preg_replace:

Código PHP:
<?php

$cadena 
"[en]Your name[/en][es]Nombre[/es]";
$patron "/\//";
$reemplazo "";
$cadenapreg_replace($patron$reemplazo$cadena);


$patron "/(\[[es]+\])/i";
$reemplazo "";
$cadenapreg_replace($patron$reemplazo$cadena);


$patron "/(\[[en]+\])/i";
$reemplazo "/";
$cadenapreg_replace($patron$reemplazo$cadena);


$patron "/^\//";
$reemplazo "";
$cadenapreg_replace($patron$reemplazo$cadena);

echo 
$cadena;

?>
Pero supongo que hay una forma mas corta, a ver si me ayudan con el código.
__________________
Adictoshp.org
  #2 (permalink)  
Antiguo 22/01/2015, 16:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Reemplazar slash y corchetes con preg_replac

Cita:
Pero supongo que hay una forma mas corta, a ver si me ayudan con el código.
¿Necesitas que mejoremos el código por ti entonces?

No tiene sentido, ya te funciona, y si quieres mejorarlo debes entender lo que estás haciendo.

¿Sabes cómo funcionan las expresiones regulares y sólo has ido tocando código sin saber?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/01/2015, 16:43
Avatar de xplorador  
Fecha de Ingreso: enero-2002
Ubicación: Peru
Mensajes: 105
Antigüedad: 22 años, 3 meses
Puntos: 0
Respuesta: Reemplazar slash y corchetes con preg_replac

Si tienen sentido por que mi código funciona pero es muy largo y seguro arcaico, pues lo hecho con varios patrones independientes y me gustaría pulirlo para que sea mas corto digamos usar un solo patrón o dos.

No se como funcionan las expresiones regulares al 100%, recién hoy estado leyendo pero obviamente no tengo la compresion exacta y mis dudas han sido sobre todo con el reemplazo de los caracteres "[" y "/"
__________________
Adictoshp.org
  #4 (permalink)  
Antiguo 22/01/2015, 16:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Reemplazar slash y corchetes con preg_replac

Mira, las expresiones regulares son un lenguaje totalmente independiente de PHP, por ende amerita estudio aparte.

En breve, la expresión regular más avanzada para simplificar sería así:
Código PHP:
Ver original
  1. $txt = '[en]Your name[/en][es]Nombre[/es]';
  2.  
  3. var_dump(preg_replace('/\[(\w+)\]([^[\]]+)\[\/\1\]\s*\[(\w+)\]([^[\]]+)\[\/\3\]/', '\2/\4', $txt));

Si deseas aprender de qué se trata todo esto te sugiero consultar el sub-foro de expresiones regulares con más frecuencia.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 22/01/2015, 16:56
Avatar de xplorador  
Fecha de Ingreso: enero-2002
Ubicación: Peru
Mensajes: 105
Antigüedad: 22 años, 3 meses
Puntos: 0
Respuesta: Reemplazar slash y corchetes con preg_replac

Muchas gracias...
Revisare los expresiones regulares
__________________
Adictoshp.org

Etiquetas: Ninguno
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:30.