Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
21.6. Списки слов проверки орфографии и принципы работы с ними в PHPКак всякий язык, РНР позволяет программисту помимо использования зарезерви рованного словаря создание самостоятельных списков слов, при помощи которых в дальнейшем будут проверяться те или иные слова. Это очень полезно, когда вам необходимо контролировать, например, ограниченный перечень слов, известных заранее. Рассмотрим следующие функции: • 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, "/dict/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_config_save_repl() используется перед запросом pspell_new_config(). Это определяет, сохранитли 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(). В свою очередь функция pspell_suggest() будет все еще возвращать предложения. Пример работы функции pspell_new(): $link = pspell_new("en", "", "", "", (PSPELL_EAST|PSPELL_RUN_TOGETHER)); Строка приведенного примера позволяет понять, как производится задание тех или иных параметров. Параметр 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(). Синтаксис функции похож на синтаксис таких функций, как pspell_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(), установить персональный файл списка слов при помощи функции pspell_config_personal(), установить файл для замены слов функцией pspell_config_repl() и вызвать новый словарь при помощи функции pspell_new_config(). В функции добавлен новый параметр (personal). Персональный параметр (personal) устанавливает файл, в котором происходит добавление слов к персональному списку, после этого файл будет сохранен. Это должно быть абсолютное имя файла, начинающееся с символа /, потому что иначе это будет пониматься как $HOME, который является «корневым» (/root) для большинства систем, и скорее всего не тот путь, который вам необходим. Приведем пример, позволяющий правильно производить работу с данной функцией: $ident = pspell_new_personal ("/diet/seller.pws", "en", "", PSPELL_EAST|PSPELL_RUN_TOGETHER));
|
1 |
Оглавление
|