<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

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

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

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

Первым делом, давайте перечислю все те функции, что постоянно используется, когда нужно работать с регулярными выражениями в PHP:

  • Функция preg_match(string pattern, string subject, array matches) - данная функция ищет совпадения в строке subject регулярному выражению pattern. Первое найденное совпадение помещается в массив matches. Обратите внимание, что эта функция ищет только первое совпадение. Второе, третье и так далее она не ищет! Массив matches будет таким:
    • Первый элемент содержит всю совпавшую часть строки в целом.
    • Второй элемент содержит часть строки, совпавшей с первым субпаттерном (что такое субпаттерны будет разобрано в одной из следующих статей).
    • Третий элемент содержит часть строки, совпавшей с вторым субпаттерном.
    • И так далее.
    Также очень важно понимать, что параметр matches не обязателен. Ещё очень важный момент функции preg_match() - это её использование в простом поиске на совпадение, так как она возвращает либо 0 (не было совпадений), либо 1 (было совпадение). Ввиду этого, данная функция очень активно используется в конструкциях IF.
  • Функция preg_match_all(string pattern, string subject, array matches) - полный аналог функции preg_match(), но здесь поиск совпадений продолжается и после первого найденного. То есть если функция preg_match() останавливает свою работу после первого найденного совпадения, то функция preg_match_all() идёт дальше. Возвращает эта функция - количество совпадений (разумеется, их может быть больше 1-го).
  • Функция preg_replace(mixed pattern, mixed replacement, mixed subject, int limit). Очень полезная функция, которая в строке subject заменяет строки, соответствующие pattern, на replacement. Количество замен задаётся параметром limit. Если данный параметр не указан (а он является необязательным), то будет проведена замена всех найденных совпадений.

Теперь же давайте приведу простой пример использования какой-нибудь из этой функции, чтобы Вы посмотрели всё на практике:

<?php
  //Создаём строку с e-mail
  $str = "Вот мой e-mail: [email protected], пишите...";
  //Проверяем строку на наличие e-mail с помощью регулярных выражений и затем выводим соответствующий результат
  if (preg_match("/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})/i", $str)) echo "E-mail найден";
  else echo "E-mail не найден";
?>

В результате, как Вы и догадались появится строка: "E-mail найден". В данном примере написано регулярное выражение, которое Вы пока понимать не должны. Уже начиная со следующей статьи, мы с Вами будем учиться составлять регулярные выражения, а пока просто примите как должное: регулярное выражение в примере ищет e-mail в заданной строке.

Функций для работы с регулярными выражениями в PHP несколько больше, но вот этот список - это самые важные и самые главные. Их надо обязательно знать и уметь применять! Лично я эти функции применял такое количество раз, что не сосчитать. И заранее могу сказать, что если встанет вопрос о применении регулярных выражений в PHP, то Вы этими функциями и будете пользоваться.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (10):

ArturPanteleev ArturPanteleev 02.06.2012 15:39:38

А не подскажите в чем может быть проблема: Писал для сайта функцию поиска и все вроде работало нормально, но заметил что если в поисковом запросе есть-(дефис) то поиск не работает: preg_match("/$arr[$i]/i",$value['title'])) вот основная функция для поиска, где $arr[i] - поисковой запрос

Ответить

Admin Admin 02.06.2012 15:43:58

Поставьте перед preg_match() вот это: $arr[$i] = quotemeta($arr[$i]);

Ответить

ArturPanteleev ArturPanteleev 02.06.2012 16:02:31

Спасибо, идею понял, но почему то не сработало все равно

Ответить

ArturPanteleev ArturPanteleev 02.06.2012 16:08:10

а,нет- все норм, в другом ошибка.

Ответить

malina95 malina95 15.09.2012 23:12:14

А как проверять если при обращении к скрипту обработчику он должен вернутся редиректом обратно,,,а как же быть с проверкой на правильность мыла если выводит сообщение об ошибке в том же файле и при обращении к обработчику он выдаёт ошибку на строку с редиректом и надпись о том что мыло правильное...Как тогда сделать???Использовать сессии для комментов не выгодно

Ответить

Admin Admin 16.09.2012 10:56:45

Так и делать редирект в конце обработчика, не вижу тут проблемы. И редирект можно выводить только если почта прошла проверку, если нет, то выводить ошибку там же.

Ответить

malina95 malina95 16.09.2012 11:07:25

Как я сам не догадался редирект ввести в иф и радоваться жизни...Спасибо вам

Ответить

Ustinochka Ustinochka 06.08.2014 10:56:14

Проверять email регулярным выражением плохая идея, в вашем примере будет отсеиваться некоторая часть email адрессов, например есть доменные зоны состоящие из 5 символов. А так же появились доменны на русском языке, вы не задумывались над этим вопросом?

Ответить

(Алекс) (Алекс) 25.06.2015 20:18:01

Посмотрите на дату публикации статьи, тогда еще не было доменов с кириллицей.

Ответить

(Алекс) (Алекс) 25.06.2015 20:19:48

А в общем, проверять специальной функцией email тоже не очень хорошо. Я пробовал как-то раз, она некоторые ошибочные пропускает

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.