Списки слов проверки орфографии и принципы работы с ними
 

     MOYCOMP.NET

Меню


сайт html, ПРИНЦИПЫ JOOMLA, ПОНЯТИЯ JOOMLA, сделать сайт joomla, Модули JOOMLA, самоучитель joomla, joomla руководство, домены, Доменные имена, Что такое интернет, Легко ли сделать сайт, сайт php, Joomla компонент content, joomla

Списки слов проверки орфографии и принципы работы с ними


Как всякий язык, РНРпозволяет программисту помимо использования зарезервированного словаря создание самостоятельных списков слов, при помощи которых в дальнейшем будут проверяться те или иные слова. Это очень полезно, когда вам необходимо контролировать, например, ограниченный перечень слов, известных заранее.
Рассмотрим следующие функции:
  • pspell_add_to_personal(),
  • pspell_add_to_session(),
  • pspell_clear_session(),
  • pspell_config_save_repl(),
  • pspell_new(),
  • pspell_new_config(),
  • pspell_new_personal(),
  • pspell_save_wordlist().
Это не полный перечень функций работы со списками слов, но изучив основные принципы работы с этими функциями, вы без проблем сможете профессионально программировать.
В существующие списки слов можно не только удалять, но и добавлять необходимые слова. Это позволяет сделать функция pspell_add_to_personal (). Функция имеет следующий синтаксис:
int pspell_add_to_personal(int dictionary_link, string word)
dictionary_link - идентификатор функции конфигурации, word - вносимое слово.
Функция pspell add to personal () позволяет добавлять слово в персональный спи-сок слов. Если, чтобы открыть словарь, вы использовали функции pspell_new_config() совместно с pspell config personal (), то в этом случае для сохранения списка слов можно воспользоваться функцией pspell_save_wordlist().
ВНИМАНИЕ
Эта функция не будет работать, если у вас не установлена библиотека pspell версии 11.2 или aspell.32.5 и позже.

Работу функции pspell_add_to_personal () можно изучить на следующем примере:
<?
$ident = pspell_config_create("en");
pspell_config_personal($ident, "/dict/sellere.pws") ;
$link = pspell_new_config($ident) ;
pspell_add_to_personal($link, "Sasha");
pspell_save_wordlist($link);
?>
Из примера видно, что при помощи функции pspell_add_to_personal () произойдет добавление слова Sasha в список слов, находящийся по пути /diet/ sellere .pws, после чего произойдет операция сохранения данных и программа прекратитвыполнение.
Если вам необходимо произвести аналогичное дополнение нового слова к списку слов в текущей сессии, воспользуйтесь функцией Pspell_add_to_session(). Функция аналогична принципу работы pspell_add_to_personal () и имеет такой же синтаксис. Единственное, что их отличает - pspell_add_to_session() производит дополнение в список листов в текущей сессии.
Помимо этого в текущем сеансе можно не только добавлять, но и удалять слова списка слов. Для этого используется функция pspell_clear_session () .
Pspell_clear_session () очищает текущий сеанс. Список слов сеанса становится пустым, и, например, если вы попробуете сохранить слова с использованием функции pspell_save_wordlist (), ничего не случится. Обратите внимание например:
<?
$ident = pspell_config_create("en") ;
pspell_config_personal($ident, "/diet/seller.pws");
$link = pspell_new_config($ident);
pspell_add_to_personal($link, "Sasha");
pspell_clear_session{$link) ;
pspell_save_wordlist($link) ;
?>
После выполнения примера слово Sasha не будет записано в наш список слов.
Рассмотрим еще одну функцию, представляющую для нас практический интерес. Функция pspell_save_repl () позволяет нам решать, сохранять ли список замены наряду со списком слов. Ее синтаксис:

int pspell_config_save_repl(int dictionary_link, boolean flag)
Функция pspell_conf ig_save_repl () используется перед запросом pspell_new_conf ig (). Это определяет, сохранитли pspell_save_wordlist () слова замены наряду со списком слов. Обычно вместо этой функции принято использовать pspell_save_wordlist().
Чтобы произвести вызов нового словаря, необходимо воспользоваться функцией pspell_new(). Функция похожа наpspell_config_create (). Она оперирует прак¬тически аналогичными понятиями параметров, за исключением нового, добавлен¬ного параметра, увидеть который вы сможете из приведенного синтаксиса данной функции:
int pspell_new(string language [, string spelling [, string jargon [, string encoding [, int mode] ]]])
Помимо трех имеющихся, описанных нами ранее, добавлена еще одна разновидность режима работы:
  • PSPELL_RUN_TOGETHER - словосочетания рассматриваются как одно целое, т. е, конструкция thecat будет являться правильным составом и никакой ошибки определяться не будет, хотя в этом случае должно содержаться место между двумя словами. Изменения этих параметров могут только воздействовать на результаты, возвращенные функцией pspell_check (). В свою очередь функция рspell_suggest будет все еще возвращать предложения.
Пример работы функции pspell_new ():
$link = pspell_new("en", "", "", "", (PSPELL_FAST |PSPELL_RUN_T0GETHER)) ;
Строка приведенного примера позволяет понять, как производится задание тех или иных параметров. Параметр PSPELL_FAST позволяет производить быструю проверку, при этом режимом PSPELL_RUN_TOGETHER мы указали на то, что словосочетания, написанные вместе, например «thedog», не являются ошибкой и нанихне стоит заострять внимание.
Для вызова нового словаря с основной конфигурацией используется функция pspell_new_config (). Функция сама по себе не задает конфигурацию, она позволяет производить обращение к ней с учетом уже определенной на начальном этапе создания скрипта. Функция имеет очень простой синтаксис:
int pspell_new_config(int config)
Другими словами, функция pspell_new_config () открывает новый словарь с установками, указанными в конфигурации, созданной при помощи функции pspell config_create (),: и изменяемый при помощи функции pspell_config_* (). Этот метод является более гибким и имеетвсе функциональные возможности, определенные функциями pspell_new () и pspell_new_personal ().

ВНИМАНИЕ
Параметр конфигурации устанавливается один раз функцией pspell_config_create (). После этого происходит элементарное обращение к идентификатору конфигурации.
Пример реализации функции pspell_new_config ():
$ident = pspell_config_create("en"); pspell_config_personal($ident, "/diet/seller.pws"); pspell_config_repl($pspell_config, "/diet/seller.repl");
$link = psPell_new_config($ident);
Если вам необходимо вызвать новый словарь с персональным списком слов, необходимо воспользоваться функцией pspell_new_personal (). Синтаксис функции похож на синтаксис таких функций, KaKpspell_config_create () и pspell_new (). Единственное, что отличает pspell_new_personal от приведенных - задача, для выполнения которой и была создана данная функция. Синтаксис функции pspell_new_personal():
int pspell_new_personal (string personal, string language [, string spelling [, string jargon [, string encoding [, int mode] ]]])
Функция pspell_new_personal () позволяет открывать новый словарь с персональным списком слов и возвращает идентификатор связи словаря для использования в других функциях pspell. Список слов может изменяться и быть сохранен при помощи функции pspell_save_wordlist (). Однако значения слов для замены не сохраняются. Чтобы их сохранять, необходимо создать конфигурацию, используя pspell_config_create (), установить персональный файл списка слов при помощи функции рsреll_config_реrsоnа1(), установить файл для замены слов функцией pspell_config_repl () и вызвать новый словарь при помощи функции pspell_new_config ().
В функции psPell_new_personal () добавлен новый параметр (personal). Персональный параметр (personal) устанавливает файл, в котором происходит добавление слов к персональному списку, после этого файл будет сохранен. Это должно быть абсолютное имя файла, начинающееся с символа /, потому что иначе это будет пониматься как $НОМЕ, который является «корневым» (/root) для большинства систем, и скорее всего не тот путь, который вам необходим.
Приведем пример, позволяющий правильно производить работу с данной функцией:
$ident = pspell_new_personal(" /diet/seller, pws", "en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER));



Вернуться на главную

Реклама

 


MOYCOMP.NET 2008