• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • pspell_new()

    (PHP 4 >= 4.0.2, PHP 5, PHP 7)

    Load a new dictionary

    说明

    pspell_new(string $language[,string $spelling[,string $jargon[,string $encoding[,int $mode= 0]]]]): int

    pspell_new() opens up a new dictionary and returns the dictionary link identifier 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.
    Mode is a bitmask constructed from different constants listed above. However,PSPELL_FAST,PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

    返回值

    Returns the dictionary link identifier on success 或者在失败时返回FALSE.

    范例

    pspell_new()

    <?php
    $pspell_link = pspell_new("en", "", "", "",
                               (PSPELL_FAST|PSPELL_RUN_TOGETHER));
    ?>
    
    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