На этом шаге мы рассмотрим некоторые функции, используемые для сравнения строк.
Функции strcasecmp() и strncasecmp() позволяют производить сравнение строки определенного количества символов. Чтобы произвести сравнение двух строк, используют функцию strcasecmp(). Она позволяет сравнивать строки без учета регистра. Ее синтаксис:
Рис.1. Общий вид функции strcasecmp()
Параметры строка1 и строка2 задают значения сравниваемых строк. Функция возвращает целое число, равное нулю, если две строки равны. Если строка1 меньше чем строка2, то функция возвратит целое значение меньше нуля. Если строка1 будет больше строка2, функция возвратит целое значение больше нуля.
Если нужно сравнивать не всю строку сразу, а определенное начальное количество символов этой строки, применяют функцию strncasecmp(). Она имеет следующий синтаксис:
Рис.2. Общий вид функции strncasecmp()
На месте параметра длина указывается количество символов, отсчитываемых с начала строк строка1 и строка2. Это целое число. Во всем остальном функция strncasecmp() работает аналогично функции strcasecmp(). Приведем пример, иллюстрирующий использование функций strcasecmp() и strncasecmp():
<?php $var1 = "TABLE"; $var2 = "table"; if (!strcasecmp ($var1, $var2)) { echo "Строки $var1 и $var2 равны без учета регистра"."<br>"; } else { echo "Строки $var1 и $var2 не равны без учета регистра"."<br>"; } $var3 = "World"; $var4 = "Hello"; if ($int=strcasecmp($var3,$var4)) { echo "Строки $var3 и $var4 равны"."<br>"; } else { echo "Строки $var3 и $var4 не равны"."<br>"; } $var5 = "World"; $var6 = "He"; if ($int=strcasecmp($var5,$var6)) { echo "Строки $var5 и $var6 равны"."<br>"; } else { echo "Строки $var5 и $var6 не равны"."<br>"; } $var7 = "Vitalik"; $var8 = "Vitya"; if (!strncasecmp($var7,$var8,3)) { echo "Первые три символа строк $var7 и $var8 равны"."<br>"; } else { echo "Первые три символа строк $var7 и $var8 не равны"."<br>"; } ?>
В первом фрагменте приведенного примера происходит сравнение двух строк, одна из которой приведена в верхнем регистре, другая - в нижнем. Во второй части программы происходит сравнение двух строк с одинаковой длиной, но разными значениями. Функция сравнивает каждый символ этих строк, и за счет того, что сравниваемые символы будут различны, функция выдаст соответствующий результат. В третьей части программы происходит обычное сравнение количества символов строк, только эти строки имеют разные длины. Четвертая часть - пример сравнения строк при помощи функции strncasecmp().
Результат выполнения этой программы смотрите на рисунке 3.
Рис.3. Пример применения функций strcasecmp() и strncasecmp()
Каждый отдельный блок скрипта выводит одну строку согласно полученному результату.
На следующем шаге мы рассмотрим функцию, копирующую часть строки.