- •Лекция 4 Манипулирование строками и регулярные выражения
- •Форматирование строк
- •Усечение строк
- •Форматирование строк для представления Использование html- форматирования
- •Форматирование строк для печати
- •Форматирование строк для хранения
- •Объединение и разделение строк с помощью строковых функций
- •Сравнение строк
- •Упорядочение строк
- •Проверка длины строк
- •Сопоставление и замена подстрок с помощью строковых функций
- •Поиск строк в строках
- •Определение позиции подстроки
- •Замена подстрок
- •Регулярные выражения
- •Наборы символов и классы
- •Повторение
- •Подвыражения
- •Ветвление
- •Поиск подстрок с помощью регулярных выражений
- •Замена подстрок с помощью регулярных выражений
- •Разделение строк с помощью регулярных выражений
Лекция 4 Манипулирование строками и регулярные выражения
Рассмотрим использование строковых функций PHP для форматирования и манипулирования текстом, поиска и замены слов, выражений.
Создадим новое приложение Smart Form Mail. Новые созданные сценарии будут добавлены к сайту компании, о которых мы говорили ранее.
Создадим форму отзывов клиентов, позволяющую клиентам вводить свои пожелания и замечания. Однако приложение будет обладать преимуществом по сравнению со многими другими формами, которые можно встретить в Web. Вместо того, чтобы отправлять форму по обобщенному адресу электронной почты процессу будет придана некоторая интеллектуальность за счет поиска и вводимых данных ключевых слов и выражений и последующей отправке сообщения электронной почты соответствующему сотруднику компании. Например, если сообщение будет содержать слово реклама, то оно будет отправлено в отдел маркетинга и т.д.
Первоначально рассмотрим простой сценарий, дополняя его по мере изучения материала.
<?
$toaddress = "feedback@bobsdomain.com";
$subject = "Feedback from web site";
$mailcontent = "Customer name: ".$name."\n"
."Customer email: ".$email."\n"
."Customer comments: \n".$feedback."\n";
$fromaddress = "webserver@bobsdomain.com";
mail($toaddress, $subject, $mailcontent, $fromaddress);
?>
<html>
<head>
<title>Bob's Auto Parts - Feedback Submitted</title>
</head>
<body>
<h1>Feedback submitted</h1>
<p>Your feedback has been sent.</p>
</body>
</html>
Поля данной формы объедены, а PHP – функция mail() применяется для отправки их по электронной почте по адресу feedback@bobsdomain.com. Прототип данной функции выглядит следующим образом:
bool mail(string кому, string тема, string сообщение,
string [дополнительные_заголовки]);
Четвертый параметр может использоваться для отправки любых дополнительных допустимых заголовков сообщения электронной почты. В данном примере четвертый параметр был использован для включения в сообщение адреса “From:” (От). Его можно также применять для добавления такого поля, как “Reply-To” (Ответить).
Форматирование строк
Часто строки, вводимые пользователями, придется приводить в порядок, прежде чем их можно будет использовать.
Усечение строк
Первый шаг по приведению строк в порядок – удаление из них любых лишних пробелов. Хотя это и не обязательно, но может оказаться полезным, если предполагается хранение строк в файле или базе данных либо ее сравнение с другими строками. Для этой цели в PHP используются три функции. Используем функцию trim() для приведения вводимых данных в порядок следующим образом:
$name = trim($name);
$email = trim($email);
$feedback = trim($feedback);
Данная функция удаляет пробелы в начале и конце строки и возвращает результирующую строку. При этом символами пробелов считаются символы новой строки (\n), возврат каретки (\r), символы горизонтальной (\t) и вертикальной табуляции (\v), конца строки (\0) и обычные пробелы.
ltrim() – удаляет пробелы только в начале строки;
chop() – удаляет пробелы только в конце строки.