П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 174917 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 71825 раз(а).

Учебник HTML.
Просмотров 72005 раз(а).

Руководство по PHP5.
Просмотров 42611 раз(а).

Хостинг через призму DNS.
Просмотров 49050 раз(а).

Подборка текстов стандартных документов.
Просмотров 43028 раз(а).

Учебник PHP - Самоучитель
Просмотров 49373 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 49603 раз(а).

Внешние атаки...
Просмотров 40154 раз(а).

Учебник PHP.
Просмотров 35188 раз(а).

SSI в примерах.
Просмотров 26495 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Руководство по PHP
Пред. След.

levenshtein

(PHP 3 >= 3.0.17, PHP 4 >= 4.0.1, PHP 5)

levenshtein --  Вычисляет расстояние Левенштейна между двумя строками

Описание

int levenshtein ( string str1, string str2 )

int levenshtein ( string str1, string str2, int cost_ins, int cost_rep, int cost_del )

int levenshtein ( string str1, string str2, function cost )

Функция возвращает расстояние Левенштейна между двумя строками, или -1, если хотя бы одна из строк длиннее 255 символов (этого более чем достаточно для сравнения имен или поиска по словарю, а проводить генетический анализ на PHP просто несерьезно).

Расстояние Левенштейна - это минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2. Сложность алгоритма равна O(m*n), где n и m - длины строк str1 и str2 (неплохо по сравнению с similar_text(), имеющей сложность O(max(n,m)**3), но все же довольно много).

В простейшей форме функция принимает в качестве аргументов две строки и возвращает минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2.

Второй вариант принимает три дополнительных аргумента, задающих стоимость операций вставки, замены и удаления. Этот вариант универсальнее первого, но не так эффективен.

Третий вариант (который еще не реализован) будет наиболее универсальным, но и самым медленным. Он будет принимать в качестве третьего аргумента пользовательскую функцию, которая будет вычислять стоимость каждой возможной операции.

Пользовательская функция будет иметь следующие аргументы:

  • тип операции: 'I', 'R' or 'D'

  • текущий символ в строке 1

  • текущий символ в строке 2

  • текущая позиция символа в строке 1

  • текущая позиция символа в строке 2

  • количество символов, оставшихся в строке 1

  • количество символов, оставшихся в строке 2

Пользовательская функция должна возвращать положительное целое, определяющее стоимость конкретной операции.

Использование пользовательской функции позволяет учитывать различия между символами и даже контекст символов при вычислении стоимости операций вставки, замены и удаления, но ценой потери скорости по сравнению с двумя первыми вариантами.

См. также описание функций soundex(), similar_text() и metaphone().



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru