<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру

PHP и MySQL с Нуля до Гуру

Данный курс - это более 20-ти часов видеоуроков по изучению PHP и MySQL. Ключевой момент курса - это создание движка для сайта с нуля. Каждая строчка комментируется. Практически для каждого урока имеются упражнения. Причём данные упражнения направлены не только на закрепление материала, но и на реализацию реальных задач, встающих перед Web-разработчиками при создании сайтов. После курса Вы сможете без проблем создавать движки для любых сайтов.

Также почти к каждому уроку идут упражнения для закрепления материала.

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

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

Подписавшись по 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: abc@gmail.com, пишите...";
  //Проверяем строку на наличие 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 тоже не очень хорошо. Я пробовал как-то раз, она некоторые ошибочные пропускает

Ответить

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