pspell_new
(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
pspell_new — Load a new dictionary
说明
string
$language
,string
$spelling
= "",string
$jargon
= "",string
$encoding
= "",int
$mode
= 0): PSpell\Dictionary|false
pspell_new() opens up a new dictionary and returns an PSpell\Dictionary instance for use in other pspell functions.
For more information and examples, check out inline manual pspell website:» http://aspell.net/.
参数
-
language
-
The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.
-
spelling
-
The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.
-
jargon
-
The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.
-
encoding
-
The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.
-
mode
-
The mode parameter is the mode in which spellchecker will work. There are several modes available:
-
PSPELL_FAST
- Fast mode (least number of suggestions) -
PSPELL_NORMAL
- Normal mode (more suggestions) -
PSPELL_BAD_SPELLERS
- Slow mode (a lot of suggestions) -
PSPELL_RUN_TOGETHER
- Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, although there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.
PSPELL_FAST
,PSPELL_NORMAL
andPSPELL_BAD_SPELLERS
are mutually exclusive, so you should select only one of them. -
返回值
Returns an PSpell\Dictionary instance on success, 或者在失败时返回 false
.
更新日志
版本 | 说明 |
---|---|
8.1.0 | Returns an PSpell\Dictionary instance now; previously, a 资源(resource) was returned. |
范例
示例 #1 pspell_new()
<?php
$pspell = pspell_new("en", "", "", "",
(PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>

User Contributed Notes 2 notes
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.
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