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 />';
?>
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.