Just as a small tip, I noticed that when you call pspell_new multiple times, php does not free memory usage when the resource is destroyed, but only when your entire script has completely finished. So if you create a pspell_link resource and you intend to use it again somewhere else, instead of calling pspell_new again, keep track of your original pspell_link resource instantiation, and use it again, your script will run much more efficiently.
I was switching between 16 dictionaries by just calling a new pspell_new everytime, my memory usage on the server grew until i hit a failure/php core dump. :-/ So i stored each pspell resource in an array keyed by language, and checked if the resource existed first, before creating one if needed.
I hope that helps someone.
pspell_new
(PHP 4 >= 4.0.2, PHP 5)
pspell_new — Charge un nouveau dictionnaire
Description
$language
[, string $spelling
[, string $jargon
[, string $encoding
[, int $mode = 0
]]]] )pspell_new() ouvre un nouveau dictionnaire et retourne un identifiant de dictionnaire, pour être utilisé avec d'autres fonctions pspell.
Pour plus d'informations et d'exemples, reportez-vous au site » http://aspell.net/.
Liste de paramètres
-
language -
Le paramètre de langue
spellingest constitué des deux lettres du codage de langue ISO 639, et du codage optionnel de pays ISO 3166, séparés par un '_'. -
spelling -
Ce paramètre est nécessaire pour les langues qui ont plus d'une orthographe, comme l'anglais ou le français. Les valeurs reconnues sont 'american', 'british', et 'canadian'.
-
jargon -
Le paramètre
jargoncontient des informations supplémentaires pour distinguer deux listes de mots qui ont le même marquage de langue et d'orthographe. -
encoding -
Le paramètre
encodingest le type d'encodage des mots. Les valeurs valides sont 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Ce paramètre n'ayant pas été testé de façon exhaustive, il convient d'être prudent lors de son utilisation. -
mode -
Le paramètre
modeest le mode de travail du vérificateur d'orthographe. Plusieurs modes sont disponibles :-
PSPELL_FAST- Mode rapide (moins de suggestions) -
PSPELL_NORMAL- Mode normal (plus de suggestions) -
PSPELL_BAD_SPELLERS- Mode lent (beaucoup plus de suggestions) -
PSPELL_RUN_TOGETHER- Considère que des mots accolés forment un composé autorisé. Ainsi, "lechat" sera un composé valide. Cette option ne modifie que les résultats retournés par pspell_check(); pspell_suggest() retournera toujours des suggestions.
modeest un masque construit à partir des constantes listées ci-dessus. Cependant,PSPELL_FAST,PSPELL_NORMALetPSPELL_BAD_SPELLERSsont mutuellement exclusives : vous ne devez en utiliser à la fois. -
Valeurs de retour
Retourne l'identifiant de dictionnaire en cas de succès ou FALSE si une erreur survient.
Exemples
Exemple #1 pspell_new()
<?php
$pspell_link = pspell_new("en", "", "", "",
(PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>
I think the language and spelling parameters differs on different PHP versions and/or aspell/UNIX distributions.
My PHP 5.2.6 Debian ignores the spelling parameter.
Instead:
For Americans use en_US as language.
For British use en_GB (not en_UK)
For Canadian use en_CA
