ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Кодирование и декодирование. Часть Семнадцатая.


23-01-2015

int similar_text(string left, string right, reference percentage)
Функция similar_text (листинг 12.71) сравнивает две строки и возвращает число символов, которые они имеют. При задании аргумента percentage эта функция возвращает совпадение в процентах. Сравните эту функцию с функциями metaphone и soundex.
Алгоритм, использованный в функции similar_text, взят из книги Иана Оливера (Ian Oliver) Programming Classics: Implementing the World's Best Algorithms, опубликованной в издательстве Prentice Hall, узнать более подробно о ней можно на Web-узле издательства (<http://www.phptr.com/ptrbooks/ptr_01310 04131.html>).

| Листинг 12.71. Функция similar text_
<?php
// создать две строки
$left = "Leon Atkinson";
$right = "Vicky Atkinson";
// проверить, насколько они подобны
$i = similar_text($left, $right, $percent);
// распечатать результаты
print($i . " общих символов<Ьг>п");
print($percent . "% подо6ия<Ьг>п");

string soundex(string text)
Функция soundex (листинг 12.72) возвращает идентификатор, основанный на анализе звучания слов при произношении. Слова, подобные по звучанию, имеют подобные или идентичные коды, возвращаемые функцией soundex. Код soundex представляет собой последовательность, состоящую из четырех символов и начинающуюся с букв.
Эту функцию можно сравнить с функциями similar_text и metaphone. Алгоритм soundex описан Дональдом Кнутом в третьем томе его книги Искусство про­граммирования, вышедшей в Издательском доме "Вильямс".

| Листинг 12.72. Функция soundex_
<?php
print(soundex("lion") . "<br>" . soundex("lying"));

12.7. Проверка орфографии
Библиотека Pspell PHP, заменившая собой устаревшую библиотеку Aspell, позволяет проверить орфографию.
integer pspell_add_to_personal(integer configuration, string word)
Функция pspell_add_to_personal (листинг 12.73) добавляет слово в персональный словарь. При этом необходимо добавить ссылку на настройки, созданные pspell_new_config.

| Листинг 12.73. Функция pspell_add_to_personal_
<?php
//создать настройку
$config = pspell_config_create("en"); //установить путь к персональному словарю pspell_config_personal($config, "/tmp/custom.pws"); // загрузить словарь
$new_config = pspell_new_config($config); // добавить слово в словарь
pspell_add_to_personal($new_config, "Leon"); // сохранить персональный словарь pspell_save_wordlist($new_config);
?>

integer pspell_add_to_session(integer configuration, string word)
Функция pspell_add_to_session предназначена для добавления слова к сеансу.
boolean pspell_check(integer dictionary, string word)
Функция pspell_check (листинг 12.74) проверяет орфографию слова.

| Листинг 12.74. Функция pspell_check_
<?php
//open dictionary
$dictionary = pspell_new("en");
if(pspell_check($dictionary, "Leon"))
{
print('Yes');
}
else
{
print('No');
}

integer pspell_clear_session(integer dictionary)
Функция pspell_clear_session предназначена для удаления слов после сеанса. 
integer pspell_config_create(string language, string spelling, string jargon, string encoding)
Функция pspell_config_create загружает словарь и возвращает идентификатор. При этом необходимо задавать язык в виде двухбуквенного кода, за которым следует необязательный знак подчеркивания с последующим двухбуквенным кодом страны.
Аргумент spelling предоставляет возможность выбора между языками, для которых существует разница в орфографии. Например, для английского языка допустимыми значениями являются american, british и canadian. Аргумент jargon предназначен для выбора между словарями, содержащими жаргонные выражения. Например, применение medical включает термины, используемые в медицине.
Аргумент encoding устанавливает используемую для слов кодировку. Это относится к файлам .map в инсталляции pspell. Например, при использовании кодировки iso8859-1 используется файл iso8859-1.map.
Эта функция позволяет задавать параметры перед полной инициализацией проверки орфографии. После установки параметров необходимо вызвать pspell_new_config. Вместо вызова этих двух функций можно ограничиться вызовом одной функции pspell_new.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Кодирование и декодирование. Часть Шестнадцатая. PHP. Кодирование и декодирование. Часть Восемнадцатая.