- •Разработка web – приложений на php
- •1. Цель работы 8
- •1. Цель работы 12
- •1. Цель работы 18
- •1. Цель работы 26
- •Введение
- •Переменные
- •Константы
- •Использование операций: вычисление итога по форме
- •Закрытие файла.
- •Закрытие файла.
- •Открытие файла
- •Запись в файл
- •Форматы файлов
- •Закрытие файла
- •Считывание из файла
- •Другие полезные файловые функции
- •Численно индексированные массивы
- •Ассоциативные массивы
- •Многомерные массивы
- •Сортировка массивов
- •Сортировка в обратном порядке
- •Сортировка многомерных массивов
- •Изменение порядка следования элементов в массивах
- •Загрузка массивов из файлов
- •Форматирование строк
- •Форматирование строк для представления
- •Объединение и разделение строк с помощью строковых функций
- •Сравнение строк
- •Сопоставление и замена подстрок с помощью строковых функций
- •Поиск строк в строках
- •Определение позиции подстроки
- •Замена подстрок
- •Задание
- •Контрольные вопросы
Сравнение строк
До сих пор мы использовали только операцию == для сравнения двух строк на предмет их равенства. В PHP можно выполнять и более сложные операции сравнения. Их можно разделить на две категории: частичное совпадение и все прочие. Вначале рассмотрим прочие функции, а затем функции установления частичного совпадения, которые потребуются для дальнейшей разработки нашей формы.
Упорядочение строк
Данные функции полезны при сортировке данных. Прототип функции strcmp() имеет вид:
int strcmp(string str1, string str2);
Если две строки верны, то функция вернет 0. Эта функция чувствительна к регистру.
Функция strcasecmp(). Данная функция идентична предыдущей за исключение того, что она не чувствительна к регистру.
Функция strnatcmp() и ее нечувствительный к регистру аналог strnatcasecmp() сравнивают строки в соответствии с естественным упорядочением, которое более привычно для человека. Например, strcmp() расположила бы строку “2” после строки “12”, поскольку лексикографически она больше. Функция strnatcmp() расположила бы эти строки в обратном порядке.
Проверка длины строк
Длину строки можно проверить с помощью функции strlen(). Это можно задействовать при проверке правильности вводимых данных.
Сопоставление и замена подстрок с помощью строковых функций
Часто нужно проверить наличие конкретной подстроки в более длинной строке. Обычно это частичное сопоставление более полезно, нежели проверка строк на предмет равенства. В нашем примере требуется выполнить поиск на предмет наличия ключевых фраз в отзыве пользователя и отправить сообщение электронной почты в соответствующее подразделение. Можно было бы использовать функции explode() и strtok() для получения отдельных слов сообщения, а затем сравнить их, используя операцию == или функцию strcmp().
Однако это можно сделать с помощью единственного вызова одной из функций сопоставления строк или регулярных выражений.
Поиск строк в строках
Функция 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.