Читаем Справочник по PHP полностью

Функция substr_count() возвращает число фрагментов what, присутствующих в строке where.

echo substr_count("www.spravkaweb.ru", ".");

// Выведет 3



strspn


Определяет присутствие начальных символов в строке.

Синтаксис:

int strspn(string str1, string str2)

Функция strspn() возвращает длину начального фрагмента строки str1, состоящего полностью из символов, которые есть в строке str2.

echo strspn("www.spravkaweb.ru", "abc");

// Выведет 3



strcspn


Определяет отсутствие начальных символов в строке.

Синтаксис:

int strcspn(string str1, string str2)

Функция strspn() возвращает длину начального фрагмента строки str1, состоящего полностью не из символов, которые есть в строке str2.

Функции сравнения


strcmp


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

Синтаксис:

int strcmp(string str1, string str2)

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

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


strncmp


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

Синтаксис:

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)

"Различие Левенштейна" - это минимальное чило символов, которое требовалось бы заменить, вставить или удалить для того, чтобы превратить строку str1 в str2. Сложность алгоритма пропорциональна произведению длин строк str1 и str2, что делает функцию более быстродействующей, чем similar_text().

Первая форма функции возвращает число необходимых операций над символами строк для трансформации str1 в str2.

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

Перейти на страницу:

Похожие книги