Foros del Web » Programando para Internet » PHP »

Buscar palabras en texto.

Estas en el tema de Buscar palabras en texto. en el foro de PHP en Foros del Web. Hola foreros! xD Bueno, esta es la cuestión la cosa es que estoy trabajando en un sitio de microblogging (en realidad no se si lo ...
  #1 (permalink)  
Antiguo 23/07/2009, 00:47
 
Fecha de Ingreso: enero-2008
Ubicación: Chaco
Mensajes: 116
Antigüedad: 16 años, 2 meses
Puntos: 0
Buscar palabras en texto.

Hola foreros! xD

Bueno, esta es la cuestión la cosa es que estoy trabajando en un sitio de microblogging (en realidad no se si lo voy a subir, es mas para practicar xD) en www.microbloggers.com.ar (no hay nada ahi xD) y llegué a la parte donde necesito identificar los @usuario de un texto y sustituirlo por un link al perfil del usuario...

ej:

si en el texto dice @usuario debo reemplazarlo por
Código HTML:
@<a href='www.microbloggers.com.ar/user/usuario'>usuario</a> 
intenté con ereg pero mi expresion regular no es muy util que digamos porque solo me devuelve el primer texto que encuentra y los demas ni los toca :(

este es el codigo

Código PHP:
$texto"hey! @leoferreyra te paso unos usuarios ahi va @donttrythis y @yelahwilliams";
ereg("@([a-zA-Z0-9]+)"$texto$regs);
echo 
$texto."<br>";
print_r($regs); 
eso me devuelve:

Array ( [0] => @leferreyra [1] => leferreyra )

y la idea es que me devuelva:

Array ( [0] => leferreyra [1] => donttrythis [2] => yelahwilliams)

es decir solo reconoce el @leoferreyra, a mi parecer el problema esta aca:
@([a-zA-Z0-9]+)

gracias por sus respuestas xD
Salu2
__________________
La web es ciencia xD www.resiscity.com.ar, http://www.leoferreyra.com.ar
  #2 (permalink)  
Antiguo 23/07/2009, 03:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Buscar palabras en texto.

Puedes hacerlo con un preg_replace. Ésta función lo que hace es sustituir en una cadena de carácteres dado un patrón.

Podría quedar ser algo así:
Código PHP:
$texto_cambiado preg_replace('/(.*)@([a-zA-Z0-9]+)( |\b)(.*)/iU''${1}@<a href="bablabla">${2}</a>${3}${4}'$texto_sin_cambiar); 
Esto tiene algún problema como que si hay algún email en el mensaje también lo cambiará. Pero como orientación supongo que te vale.

Un saludo!

Última edición por statuesque; 23/07/2009 a las 03:38
  #3 (permalink)  
Antiguo 23/07/2009, 04:42
 
Fecha de Ingreso: enero-2008
Ubicación: Chaco
Mensajes: 116
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Buscar palabras en texto.

wow, statuesque respuesta rapida y perfecta,

era exactamente lo que queria hacer xD gracias!

y por lo de los emails puedo modificarlo para que busque un espacio antes del @ xD

Salu2
__________________
La web es ciencia xD www.resiscity.com.ar, http://www.leoferreyra.com.ar
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 21:33.