Estoy haciendo un foro y lo que quiero hacer es que cuando un usuario ingresa el contenido de un post y mezclado un enlace, o un correo o un bbcode una función me las cambie por un cartel que diga "para ver este contenido debe estar registrado" o el equivalente al bbcode en html, pero mi duda es cual es la forma más eficiente de hacer esto, podría crear un array con la función explode separando todas las palabras por sus espacios y analizarlas una por una para después rearmar el string, pero este no me parece eficiente.
Agradeceré cualquier sugerencia.