Приднестровская поддержка XOOPS
Разбираем адрес электроннойпочты на составные части.
Проверяем правильность введенной даты
Так как мы настроили сервер на кодировку windows-1251, для запуска примеров необходимо указать кодировку в программе явным образом. Шаблон программы будет выглядеть так:
<?php
header('Content-Type: text/html; charset=utf-8');
// Сюда вставляем примеры из этого раздела
?>
Кроме того, файл необходимо сохранить в кодировке UTF-8. Использовать для этого Блокнот нельзя, так как он вставляет в начало файла служебные символы (называемые сокращенно ВОМ). Для кодировки UTF-8 эти символы не являются обязательными и не позволят нам установить заголовки ответа сервера с помощью функции header(). Для сохранения файлов следует использовать программу Notepad++. В меню Кодировки устанавливаем флажок Кодировать в UTF-8 (без ВОМ), а затем набираем код. В случае копирования кода через буфер обмена советую вначале сохранить пустой файл в кодировке UTF-8 без ВОМ, вставить код из буфера обмена, а затем сохранить файл с помощью соответствующей кнопки на панели инструментов.
Прежде чем использовать функции для работы с регулярными выражениями формата POSIX, необходимо настроить кодировку с помощью функции mb_regex_encoding() :
mb_regex_encoding('UTF-8'); // Установка кодировки
Использовать регулярные выражения формата POSIX позволяют следующие функции:
□ mb_ereg() выполняет поиск в строке с помощью регулярного выражения. Зависит от регистра символов. Функция имеет следующий формат:
mb_ereg(<Регулярное выражение>, <Строка>, [<Массив>]);
В параметре <массив> сохраняются соответствия подвыражений с шаблоном:
mb_regex_encoding('UTF-8'); // Установка кодировки
$str = 'unicross@mail.ru';
$Mass = array();
mb_ereg("^([a-z0-9_.-]+)@(([a-z0-9\-]+\.)+[a-z]{2,6})$", $str,
$Mass);
foreach($Mass as $var) {
echo $var . '<br>';
}
Этот пример выведет HTML-код, который в Web-браузере отображается так:
Первый элемент массива соответствует найденной строке, второй — строке в первых круглых скобках, третий — во вторых круглых скобках и т. д.;
□ mb_eregi() выполняет поиск в строке с помощью регулярного выражения без учета регистра символов. Имеет такой же формат, как и функция mb_ereg().
С помощью функций mb_ereg() и mb_eregi() обычно проверяются входные данные. Например, правильность ввода E-mail можно проверить следующим образом:
mb_regex_encoding('UTF-8'); // Установка кодировки
$str = 'unicross@mail.ru';
$pattern = "^[a-z0-9_.-]+@([a-z0-9-]+\.)+[a-z]{2,6}$";
if (mb_eregi($pattern, $str)) echo "Нормально";
else echo "Нет";
// Выведет: Нормально
□ mb_ereg_replace() возвращает строку, которая является результатом поиска и замены в исходной строке с использованием регулярного выражения. Функция по умолчанию зависит от регистра символов и имеет следующий формат:
mb_ereg_replace(<Регулярное выражение>, <Новый фрагмент>,
<Исходная строка>, [<Модификатор>]);
Необязательный параметр <Модификатор> может содержать комбинацию следующих флагов:
• i — поиск без учета регистра. С русскими буквами возможны проблемы;
• m — поиск в строке, состоящей из нескольких строк, разделенных символом новой строки. Метасимвол "точка" соответствует любому символу, кроме символа перевода строки (\n);
• s — однострочный режим. Метасимвол "точка" соответствует любому символу, в том числе и символу перевода строки;
• x — разрешает использовать в регулярном выражении пробельные символы и однострочные комментарии;
• e — указывает, что в строке для замены указано выражение языка PHP, которое необходимо предварительно вычислить.
Например:
mb_regex_encoding('UTF-8'); // Установка кодировки
$str = '2001, 2002, 2003, 2004, 2005';
$pattern = '200[14]';
echo mb_ereg_replace($pattern, '2007', $str, 's');
// Выведет: 2007, 2002, 2003, 2007, 2005
□ mb_eregi_replace() выполняет поиск и замену без учета регистра символов. Формат такой же, как и у функции mb_ereg_replace();
□ mb_split() также поддерживает регулярные выражения. Она разделяет строку на подстроки по указанному разделителю и добавляет их в массив.
Например, такой код
mb_regex_encoding('UTF-8'); // Установка кодировки
$str = 'unicross@mail.ru';
$Mass = array();
$Mass = mb_split('[@.]', $str);
foreach ($Mass as $key) {
echo $key . '<br>';
}
выведет код HTML, который отображается так:
Отправитель | Нити |
---|
3 пользователь(ей) активно (2 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 3 далее... |