Coś w podobie mam zamiar robic w niedalekiej przyszlości.
Opcje jakie widzę:
1/ Tak jak piszesz rozbicie takiego tekstu na pojedyncze słowa i porównywanie, ale to jak sam zaówarzyłeś jest zasobożerne.
2/ Wykorzystanie fajnej funkcji strpos() która wyszukuje w stringach dany ciag znaków i zwraca na której pozycji zaczyna się dany ciąg np:
$a = "ala ma kota, kot ma jagody";
Wyświetli 20 ponieważ "j" ( pierwsza litera jagody ) znajduje się na 20 pozycji w tablicy $a ( string to tablica znaków )
i jeszcze dalej się bawiąc z liczeniem długości szukanego slowa mozna kombinować dodawanie linka napisane na biegu:
<?
$szuk = 'jagody';
$a = "ala ma kota, kot ma jagody";
echo(''.$a.'<br /><hr />'); if($b)
{
$a = $a1.'<a href="#">'.$szuk.'</a>'.$a2;
}
echo(''.$a.'<br /><hr />'); ?>
3/Można wykorzystać też str_replace(), funkcja ta znajduje dany ciąg w stringu i zamienia na inny:
<?
$szuk = 'jagody';
$a = "ala ma kota, kot ma jagody";
echo(''.$a.'<br /><hr />'); $a = str_replace($szuk, '<a href="#">'.$szuk.'</a>', $a); echo(''.$a.'<br /><hr />'); ?>
Jeszcze można sie bawić się z wywołaniem tego przy tworzeniu takiego stringa ( w tym samym skrypcie ) czy np. wysłaniem go równolegle by ajax sie nim zają. Zresztą sposoby wywołania sa dowolne.