Знакомства на Just click it
Скоро новый год!
Онлайн радио
Вверх
Новые статьи

Ретро газета в подарок
Архив

Регулярные выражения в PHP

«Регулярные выражения в PHP » – двенадцатый урок учебника PHP. В этом уроке мы поговорим об использовании регулярных выражений в PHP.

 

Понятие регулярного выражения

Регулярные выражения в PHP позволяют производить поиск данных в соответствии с некоторым шаблоном. Помимо поиска можно использовать регулярные выражения внутри циклов для решения самых разнообразных задач, таки, как выборка из текста по параметру, сортировка данных, удаление определенных частей текста (символов) и т.д.

Область использования регулярных выражений в PHP достаточно широка. К примеру следующий код проверяет правильность ввода email адреса:

 

/^\w+([\.\w]+)*\w@\w((\.\w)*\w+)*\.\w{2,3}$/

 

Выглядит этот код крайне непонятно, как будто написан на каком–то инопланетном языке. Но спешу вас успокоить, что каждый символ РВ подчиняется упорядоченному набору правил, изучив которые любой из вас сможет самостоятельно пользоваться регулярными выражениями.

 

 

Регулярные выражения в PHP

 

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

Вы наверное замечали, что на многих сайтах email адрес указан без символа @. Связанно это с тем, что сейчас по просторам сети internet разгуливает множество роботов – пауков, в алгоритмах которых используются регулярные выражения, позволяющие роботам находить email адреса, форумы и гостевые книги, чтобы потом поместить их в специализированные базы, которые широко популярны в SEO среде.

 

Основные функции для работы с регулярными выражениями:

 

preg_match(pattern, string, [result, flags]) где:

  • patternшаблон регулярного выражения;
  • stringстрока, в которой производится поиск;
  • resultсодержит массив результатов (нулевой элемент массива содержит соответствие всему шаблону, первый – первому «захваченному» подшаблону и т.д.);
  • flagsнеобязательный параметр, определяющий то, как упорядочены результаты поиска.

 

Эти функции осуществляют поиск по шаблону и возвращают информацию о том, сколько раз произошло совпадение. Для preg_match() это 0 (нет совпадений) или 1, поскольку поиск прекращается, как только найдено первое совпадение. Функция preg_match_all() производит поиск до конца строки и поэтому находит все совпадения. Все точные совпадения содержатся в первом элементе массива result у каждой из этих функций (для preg_match_all() этот элемент – тоже массив).

 

 

Ниже вы можете видеть, как работает поиск по шаблону:

 

<?
$str = "Номер участкового: "."33 – 22 – 44. Номер юриста: "."222 – 44 – 55 или 323 – 22 – 33";
$pattern = "/\d{3} – \d{2} – \d{2}/m";
$matches = preg_match_all ($pattern,$str, $result);
for ($i=0;$i<$matches;$i++)
echo "Совпадение $i: ".$result[0][$i]."<br>";
?>
Совпадение 0: 222-44-55
Совпадение 1: 323-22-33

 

В данном примере мы используем поиск по шаблону всех семизначных номеров. Для начала мы создаем текстовую строку, содержащую три телефонных номера, только два из которых соответствуют нашему условию. Шаблон для поиска 7-ми значного номера выглядит следующим образом: /\d{3} – \d{2} – \d{2}/m.

Далее мы производим поиск по шаблону:



$matches = preg_match_all ($pattern,$str, $result);



И выводим содержимое массива $result на экран:

for ($i=0;$i<$matches;$i++)
echo "Совпадение $i: ".$result[0][$i]."<br>";



назад
далее
Наверх
Источник: Создание сайтов
Мы В Контакте Мы на Facebook Лента новостей RSS
Копирование и публикация материалов сайта разрешены только при наличии активной ссылки на источник
2011 - наши дни.. © Контакты | Лого | Реклама на сайте | Вебмастерам