Muchos conocen este tema y algunos como yo no le agarramos la onda, El hecho es que me han pedido un script que me esta causando dolores de cabeza, Aqui va la explicacion
tengo la siguiente cadena:
$in="soy el nombre_del_jugador y deseo retarte a duelo";
Entonces en nombre_del_jugador va el nick del usuario que esta logeado en el servidor y hasta ahi todo bien, mi problema viene en que debo reemplazar ese nombre_de_jugador por
[url=urldeljugador]nombre_del_jugador[/url]
lo he intentado por todos los medios y nada que me funcione, lo que tengo es:
$string='soy el <nombre_del_jugador> y deseo retarte a duelo';
$buscar='<(.*)>';
$reemplazar='[url=urldeljugador]\1[/url]';
echo ereg_replace($buscar,$reemplazar,$string);
He tratado de cambiar de diferentes formas la expresion regular y nada que parsea.
Ojo: no hay error de programacion, simplemente me muestra el texto completo sin hacer el reemplazo.
a mi me funcionó, no se qué será que te esté pasando.
soy el [url=urldeljugador]nombre_del_jugador[/url] y deseo retarte a duelo
Eso es lo que sale al ejecutar el script
Si el script funciona, disculpa pero se me olvido quitar los "< >" va solo sin eso, es decir nombre_del_jugador
entonces, tu sabes nombre_usuario, busca sobre str_replace en lugar de ereg.
Cita de: Erika Vega en 24 Junio 2009, 23:16 PM
Si el script funciona, disculpa pero se me olvido quitar los "< >" va solo sin eso, es decir nombre_del_jugador
Necesitas referencias adyacentes en las cuales se pueda basar tu expresión regular, te recomiendo que uses el estandar perl.
aunque no le veo mayor sentido si mejor haces.
$nombre='Piolin';
$string="soy el $nombre y deseo retarte a duelo";
y si estas utilizando un sistema de idiomas que lo veo mas logico para usar la expresión.
utiliza
$nombre='Piolin';
$string="i am _N and i need fuck your ass";
$string=str_replace("_N",$nombre,$string);
para un caso existen diferentes soluciones.
si no te cuadra lo que te comento, plantea que necesitas.
Si no tienes patrones repetidos en el string usa explode, Saludos.