Если есть пунктуация, вы можете сначала удалить ее, используя регулярное выражение.
$sentence = 'ajhfd dog bba food!';
$clean_sentence = preg_replace ('/[^0-9a-z\s]/', '', $sentence);
Вы можете использовать функцию разнесения, чтобы разбить слова на массив.
$words = explode(' ', $clean_sentence);
И тогда вы можете просмотреть слова и посмотреть, есть ли они в вашем словаре.
foreach ($words as $word) {
if (in_array($word, $dictionary)) {
// This is a dictionary word, lets highlight it
$sentence = preg_replace("/\b$word\b/", "<b>$word</b>", $sentence);
}
}