52680.fb2 Справочник по PHP - читать онлайн бесплатно полную версию книги . Страница 48

Справочник по PHP - читать онлайн бесплатно полную версию книги . Страница 48

Сравнивает начала строк.

Синтаксис:

int strncmp(string str1, string str2, int len)

Эта функция отличается от strcmp() тем, что сравнивает не все слово целиком, а первые len байтов. В случае, если len меньше длины наименьшей из строк, то строки сравниваются целиком.

Эта функция сравнивает две строки посимвольно (точнее, бобайтово) и возвращает:

Так как сравнение идет побайтово, то регистр символов влияет на результаты сравнений.

strcasecmp

Сравнивает строки без учета регистра.

Синтаксис:

int strcasecmp(string str1, string str2)

То же самое, что и strcmp(), только при работе не учитывается регистр букв.

$str1 = "Привет!";

$str2 = "привет!";

if(!strcesecmp($str1, $str2))

echo "$str1 == $str2 при сравнении строк без учета регистра";

strncasecmp

Сравнивает начала строк без учета регистра.

Синтаксис:

int strncasecmp(string str1, string str2, int len)

Функция strncasecmp() является комбинацией функций strcasecmp() и strncmp().

strnatcmp

Производит "естественное" сравнение строк.

Синтаксис:

int strnatcmp(string str1, string str2)

Данная функция имитирует сравнение строк, которое использовал бы человек.

$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");

echo "Обычная сортировкаn";

usort($arr1, "strcmp");

print_r($arr1);

echo "nЕстенственная сортировкаn";

usort($arr2, "strnatcmp");

print_r($arr2);

Данный скприпт выведет следующее:

Обычная сортировкаArray( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png)Естественная сортировкаArray( [0] => img1.png [1] => img2.png [2] => img10.png [3] => img12.png)

strnatcasecmp

Производит "естественное" сравнение строк без учета регистра.

Синтаксис:

int strnatcasecmp(string str1, string str2)

То же, что и strnatcmp(), только игнорирует регистр.

similar_text

Производит определение схожести двух строк.

Синтаксис:

int similar_text(string firsrt, string second [, double percent])

Функция similar_text() вычисляет схожесть двух строк по алгоритму, описанному Оливером (Oliver [1993]). Но вместо стека (как в псевдокоде Оливера) она использует рекурсивные вызовы.

Сложность алгоритма делает функцию медленной, и ее скорость пропорциональна (N^3), где N - длина наибольшей строки.

Функция возвращает число символов, совпавших в обеих строках. При передаче по ссылке третьего необязательного параметра в нем сохраняется процент совпадения строк.

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)