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.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Кодирование и декодирование. Часть Семнадцатая.
23-01-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Кодирование и декодирование. Часть Шестнадцатая. | PHP. Кодирование и декодирование. Часть Восемнадцатая. |