Esta es mi solución a tu problema, palabraclave es la columna que contiene el elemento que debera ser mostrado al pasar el mouse sobre la palabra y $palabrastexto es el texto previamente sacado de la BDatos, o sea, el texto original. Luego es solo hacer esto
Código PHP:
$ssql="SELECT * FROM definitions WHERE palabraclave LIKE '".$palabrastexto."'";
$rs=mysql_query($ssql);
while($row=mysql_fetch_array($rs)){
echo "<span class='info' title='".$row['palabraclave' ]."'>".$texto."</span>";
}
tambien puedes usar el FULLTEXT como dice Cluster. Si lo que quieres hacer es poner algo así como un ALT para las imágenes entonces no sería un str_replace ya que este remplaza el texto encontrado por el que tu quieres , sino con un elemento SPAN de HTML lo puedes hacer.
Salu2