21.4. Создание конфигурации
В рассмотренной нами ранее функции aspell для подключения словаря используется функция ее параметров, указываемых при подключении, было минимально, чего нельзя сказать о новой функции pspell_config_create(). Данная функция в принципе аналогична aspell_new(), единственное, что ее отличает, — расширенная система задания параметров при вызове словаря. Это, конечно, и позволило завоевать популярность и получить значительное преимущество по отношению к функциям aspell. Возможно, что эти параметры могут и не использоваться при вызове функции, но в случае конкретного подхода описываемой задачи просто очень удобно манипулировать и использовать те параметры, которые вам необходимы. Функция pspell_config_create() имеет следующий синтаксис:
int pspell_config_create (string language [, string spelling [, string jargon [, string encoding [, int mode]]]])
После создания необходимой конфигурации вы можете использовать любые функции pspell_config_* перед запросом pspell_new_config(). Это прежде всего позволит вам воспользоваться преимуществами некоторых расширенных функциональных возможностей.
Параметр languager — языка — состоит из двух значений ISO 639 кода языка (кодировки) и необязательных двух значений ISO 3166 — кода страны после черточки или символа подчеркивания.
Параметр spelling — орфографии — требуют указания языка подключаемой библиотеки. Например, для english также известны такие значения, как american, british и canadian.
Параметр jargon — циркона — содержит дополнительную информацию, необходимую для чтобы можно было отличить два различных списка которые имеют же самый и параметры орфографии.
Параметр encoding — кодирования — кодирование нужных слов. Допустимые значения — utf-8, iso8859-*, koi8-r, viscii, ср1252, machine unsigned 16, machine unsigned 32.
Функция проверки орфографии работает в трех режимах:
• PSPELL_FAST — быстрый способ (наименьшеечисло предложений);
• PSPELL_NORMAL — штатный режим (большое количество предложений);
• PSPELL_BAD_SPELLERS — медленный способ (много предложений). Функция pspell_config_create() возвращает целое значение, которое соответствует идентификатору, указывающему на тот или иной подключаемый словарь. В дальнейшем при выполнении программы производится манипуляция непосредственно с самой функцией, а именно с этим самым Приведенный пример показывает, каким способом можно подключить английский словарь для проверки орфографических ошибок:
$ident = pspell_config_create("en", " ", " " ", PSPELL_FAST);
Конечно же, для начала полноценной работы проверки правильности написания английского текста понадобится далеко не одна функция. Функция pspell_config_create() позволила нам просто указать конфигурацию словаря. После того как мы определили параметры для полного принципа задания всех необходимых условий проверки нам также необходимо будет воспользоваться функциями pspell_config_personal() и pspell_config_repl(). (см. п. 21.5).
Для задания режима способа работы используется функция pspell_config_mode(). Ее синтаксис:
int pspell_config_mode (int dictionary_link, int mode)
Использовать данную функцию следует только после определения конфигурации. Это очень важный аспект, так как эта функция использует описанный идентификатор. В нашем примере это значение переменной $ident. Именно это значение необходимо вставить в поле функции определяемое как dictionary_link. Вместо mode записывается тот режим работы, который на данном этапе обработки орфографии является наиболее предпочтительным для вас (PSPELL_FAST, PSPELL_NORMAL ИЛИ PSPELL_BAD_SPELLERS).
Как правило, функция pspell_config_mode() используется перед запросом pspell_new_config(). Эта функция определяет, как много предложений будет
возвращено функцией pspell_suggest(). Например:
<?
$ident = pspell_config_create("en");
pspell_config_mode($ident, PSPELL_NORMAL);
$link = pspell_new_config($ident);
pspell_check($link, "thedog");
?>
В нашем примере задается штатный режим работы строкой pspell_config_mode($ident, PSPELL_NORMAL). Этот же режим можно задать также при помощи функции pspell_config_create() следующим образом:
$ident = pspell_config_create("en", " " " ", PSPELL_NORMAL);