Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка(ОВП).doc
Скачиваний:
0
Добавлен:
19.11.2019
Размер:
291.33 Кб
Скачать
    1. Сравнение строк

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

Упорядочение строк

Данные функции полезны при сортировке данных. Прототип функции strcmp() имеет вид:

int strcmp(string str1, string str2);

Если две строки верны, то функция вернет 0. Эта функция чувствительна к регистру.

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

Функция strnatcmp() и ее нечувствительный к регистру аналог strnatcasecmp() сравнивают строки в соответствии с естественным упорядочением, которое более привычно для человека. Например, strcmp() расположила бы строку “2” после строки “12”, поскольку лексикографически она больше. Функция strnatcmp() расположила бы эти строки в обратном порядке.

Проверка длины строк

Длину строки можно проверить с помощью функции strlen(). Это можно задействовать при проверке правильности вводимых данных.

    1. Сопоставление и замена подстрок с помощью строковых функций

Часто нужно проверить наличие конкретной подстроки в более длинной строке. Обычно это частичное сопоставление более полезно, нежели проверка строк на предмет равенства. В нашем примере требуется выполнить поиск на предмет наличия ключевых фраз в отзыве пользователя и отправить сообщение электронной почты в соответствующее подразделение. Можно было бы использовать функции explode() и strtok() для получения отдельных слов сообщения, а затем сравнить их, используя операцию == или функцию strcmp().

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

    1. Поиск строк в строках

Функция strstr() используется для поиска строки внутри строки, в том числе для поиска строки, состоящей только из одного символа. Ее прототип:

string strstr(string haystack, string needle);

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

Например

$toaddress = "feedback@bobsdomain.com";

if (strstr($feedback, "shop"))

$toaddress = "retail@bobsdomain.com";

else if (strstr($feedback, "delivery"))

$toaddress = "fulfilment@bobsdomain.com";

else if (strstr($feedback, "bill"))

$toaddress = "accounts@bobsdomain.com";

Существует два варианта функции strstr(). Первый – функция stristr(), которая практически идентична предыдущей, но не чувствительна к регистру. Второй вариант – функция strrchr(), которая будет возвращать часть строки haystack, начиная с последнего вхождения строки needle.