Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Erika Vega en 24 Junio 2009, 22:18 pm



Título: Expresiones regulares (Ya me duele la cabeza)
Publicado por: Erika Vega en 24 Junio 2009, 22:18 pm
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

Código
  1. [url=urldeljugador]nombre_del_jugador[/url]
  2.  
lo he intentado por todos los medios y nada que me funcione, lo que tengo es:

Código
  1. $string='soy el  <nombre_del_jugador>  y deseo retarte a duelo';
  2. $buscar='<(.*)>';
  3. $reemplazar='[url=urldeljugador]\1[/url]';
  4.  
  5. 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.




Título: Re: Expresiones regulares (Ya me duele la cabeza)
Publicado por: Anibal784 en 24 Junio 2009, 22:55 pm
a mi me funcionó, no se qué será que te esté pasando.
Código:
soy el [url=urldeljugador]nombre_del_jugador[/url] y deseo retarte a duelo
Eso es lo que sale al ejecutar el script


Título: Re: Expresiones regulares (Ya me duele la cabeza)
Publicado por: 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


Título: Re: Expresiones regulares (Ya me duele la cabeza)
Publicado por: Anibal784 en 24 Junio 2009, 23:21 pm
entonces, tu sabes nombre_usuario, busca sobre str_replace en lugar de ereg.


Título: Re: Expresiones regulares (Ya me duele la cabeza)
Publicado por: HardieVon en 25 Junio 2009, 03:24 am
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.


Título: Re: Expresiones regulares (Ya me duele la cabeza)
Publicado por: дٳŦ٭ en 27 Junio 2009, 19:40 pm
Si no tienes patrones repetidos en el string usa explode, Saludos.