Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/11/2014, 23:27
DiegoEscobar
 
Fecha de Ingreso: octubre-2014
Mensajes: 38
Antigüedad: 9 años, 7 meses
Puntos: 0
Como remplazar una palabra que contiene un '@'

Buenas noches a todos, lo que necesito básicamente es crear un sistema de mención.

En mi web los usuarios pueden crear publicaciones y comentarlas pero lo que quiero es que cuando mencionen a alguien (Con un arroba antes del nombre de usuario ej. @Usuario) se borre el arroba y quede el puro nombre de usuario con un link hacia su perfil. Lo he intentado de está manera.

Código PHP:
<?PHP

//Contenido del comentario
$texto '@Pedro es hermano de @Juan y @Maria';

//Extracción de la palabra que contenga un @
$extraer explode("@",$texto,2);
$extraer explode(" ",$extraer[1]);
$extraer $extraer[0];

//Palabra que se sustituira
$nuevoextraido '@' $extraer;
//Contenido que sustituira lo anterior
$extraidourl '<a href="misitio.com/usuarios/' .$extraer'">' $extraer '</a>';

echo 
str_replace($nuevoextraido,$extraidourl,$texto) . '<br />';

?>
Resultado:
Texto original: @Pedro es hermano de @Juan y @Maria
Texto nuevo: [URL="http://misitio.com/usuarios/Pedro"]Pedro[/URL] es hermano de @Juan y @Maria

Pero el problema es que solo lo hace una vez, así que si un comentario tiene más de una mención (Ej. @Usuario1 y @Usuario2) solo remplaza la primera mención ¿Cómo hago para que me remplace todas las menciones osea todas las palabras que contengan un arroba. Muchas gracias a todos.