pspell_new

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

pspell_newЗагружает новый словарь

Описание

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

pspell_new() открывает новый словарь и возвращает ссылку на словарь для использования в других функциях pspell.

Более подробную информацию и примеры можно найти в руководстве по pspell на сайте:» http://aspell.net/.

Список параметров

language

Параметр language - это код языка, который состоит из двухбуквенного кода языка по стандарту ISO 639 и необязательного двубуквенного кода страны по стандарту ISO 3166 после тире или подчеркивания.

spelling

Параметр spelling определяет вариант проверки орфографии для языков с более чем одним вариантом правописания, таких, как английский. Известные значения: 'american', 'british', и 'canadian'.

jargon

Параметр jargon содержит дополнительную информацию для различения двух различных списков слов, имеющих одинаковые параметры language и spelling.

encoding

Параметр encoding это кодировка, в которой, как ожидается, даны слова. Допустимые значения: 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Это параметр ещё не проверен достаточно хорошо, поэтому будьте осторожны при его использовании.

mode

Параметр mode - это режим, в котором будет работать проверка орфографии. Доступно несколько режимов:

  • PSPELL_FAST - Быстрый режим (наименьшее число вариантов исправления)
  • PSPELL_NORMAL - Нормальный режим (больше вариантов исправления)
  • PSPELL_BAD_SPELLERS - Медленный режим (много вариантов исправления)
  • PSPELL_RUN_TOGETHER - рассматривает объединённые слова как правильные сложные слова. То есть, "thecat" будет считаться правильным сложным словом, хотя между артиклем и словом должен быть пробел. Изменение этой установки влияет только на результаты, возвращаемые функцией pspell_check(); pspell_suggest() будет продолжать выдавать варианты исправления.
Mode - это битовая маска, сконструированная из различных перечисленных выше констант. Однако, PSPELL_FAST, PSPELL_NORMAL и PSPELL_BAD_SPELLERS являются взаимноисключающими, так что вы должны выбрать только одну из них.

Возвращаемые значения

В случае успеха возвращает ссылку на словарь или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pspell_new()

<?php
$pspell_link 
pspell_new("en""""""",
                           (
PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>

add a note add a note

User Contributed Notes 2 notes

up
2
wookie
9 years ago
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.
up
1
allan at wagawaga dot dk
9 years ago
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
To Top