Pspell (aspell)

L'extension pspell est souvent la première trouvée. Elle utilise la bibliothèque aspell et ses dictionnaires. Son utilisation est simple :

$dict2 = pspell_new('fr');
$word  = $_SERVER['argc'] > 1 ? $_SERVER['argv'][1] : 'France';
if (pspell_check($dict2, $word)) {
    printf("Aspell   checks '%s': OK\n", $word);
} else {
    printf("Aspell   suggests for '%s': %s\n", $word, implode(', ', pspell_suggest($dict2, $word)));
}

Malheureusement, cette bibliothèque n'est plus maintenue (depuis 2011) et si elle est encore présente dans RHEL et CentOS, ses dictionnaires ne sont plus disponible dans les dépôts, ce qui rend son utilisation quasi impossible.

Enchant (hunspell)

L'extension enchant est aussi disponible. Elle utilise la bibliothèque enchant et les dictionnaires hunspell. Son utilisation est tout aussi simple :

$broker = enchant_broker_init();
$dict1  = enchant_broker_request_dict($broker, 'fr_FR');
$word   = $_SERVER['argc'] > 1 ? $_SERVER['argv'][1] : 'France';
if (enchant_dict_check($dict1, $word)) {
    printf("Hunspell checks '%s': OK\n", $word);
} else {
    printf("Hunspell suggests for '%s': %s\n", $word, implode(', ', enchant_dict_suggest($dict1, $word)));
}

Les dictionnaires, notamment utilisés par LibreOffice ou Firefox sont complets et disponibles dans les dépôts officiels.

Conclusion

Pour faciliter l'utilisation d'anciennes applications qui utiliseraient encore pspell, et comme la question est régulièrement posée, j'ai ajouté l'ensemble des dictionnaires dans le dépôt remi-safe (aspell-* )

L'utilisation d'enchant me semble cependant préférable, et, si besoin, l'adaptation du code très simple.