Задание №2 Переменные окружения
Лабораторная работа №10.
Регулярные выражения
Задание №1 Введение в регулярные выражения
Изучение принципов работы регулярных выражений в PHP.
Создайте новую папку для выполнения примеров с регулярными выражениями. Создайте в папке файл index.php.
Сформулируем первую задачу: Есть некоторая строка «Дональд Трамп стал президентом США». Необходимо проверить есть ли там некоторая подстрока, например «президент».
Решим данную задачу используя регулярные выражения:
Для решения задачи будем использовать функцию preq_match,которая в данном случае получает два параметра: первый шаблон по которому осуществляется поиск, второй – строка к которой данный шаблон необходимо применить. Функция вернет значение 1, если подстрока будет найдена, 0 – если такой подстроки нет, и может вернуть false, если возникнет ошибка в процессе выполнения.
Функция var_dump позволяет нам увидеть результат и его тип. Запустите данный пример. Надеюсь, что функция у Вас вернула значение 1 (int1);
Замените слово «президент» в шаблоне на слово ЮАР. Посмотрите на результат.
Переменная pattern в нашем случае содержит регулярное выражение. Как правило регулярное выражение заключается в какие-либо символы разделители. В данном случае использован символ «/».
Закомментируйте, но не удаляйте данный пример!
Рассмотрим еще один пример:
В данном случае мы осуществляем поиск цифр, а точнее всего числа 2016.
|
|
Применим первый шаблон с возможностью указания диапазона значений:
В данном случае функция вернет 1 если на месте последней цифры в числе, которое начинается на 200 будет 0,1,2,3,4,5 или 6. В нашем случае совпадение случиться для числа 6. Попробуйте данный пример для других интервалов и других значений, например так:
Требование на последнюю цифру мы оставляем прежним, а вот на третью в цифре накладываем ограничение: она должна быть только 0 или 2. Попробуйте другие примеры.
Диапазон или перечисление заключенное в квадратные скобки работает для одного символа, который должен находиться на нужном месте и удовлетворять данному набору символов.
В рассмотренном последнем примере наш шаблон в строке фактически ищет такие значения: 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2010,2011, 2012, 2013, 2014, 2015,2016. Если в исходной строке хотя бы одно из них будет найдено функция вернет значение 1.
Поставим следующую задачу: Проверить наличие в строке значения от 0000 до 9999. Как вы уже догадываетесь в этом случае можно использовать шаблон: /[0-9][0-9][0-9][0-9]/. И этот шаблон будет работать. Но представьте себе, что нам нужно найти соответствие на 200 или 300 цифр в числе. Тогда подобная запись будет крайне неудобной. Поэтому в регулярных выражениях существуют квантификаторы. Квантификаторы указывают количество повторений, которое необходимо применить указанный подшаблон.
|
|
Квантификаторы могут задаваться разными способами, например:
· {n} – искать повторение строго 2 раза подряд;
· {n,m} – искать повторение от n до m раз;
· {n,} – искать повторение n или более раз;
· + - любое количество повторений, но не меньше одного;
·
Нашу задачу можно записать так:[0-9]{4}
Задание №2 Переменные окружения
Нам с Вами понадобиться псевдо переменная __FILE__. В данной переменной находиться путь к исполняемому в данный момент файлу. Данный файл у нас находиться в корневой папке нашего проекта. Но его физический путь на диске совсем не является корневым.
Запишите в index.php следующий код и выполните его:
var_dump(__FILE__); // в переменной два подчеркивания как слева, так и справа
var_dump(dirname(__FILE__));
В результате в браузере вы должны будете увидеть информацию об полном физическом пути к файлу index.php и физический каталог в котором находиться корневой каталог нашего WEB ресурса. Данная информация нам понадобиться в дальнейшем.
Т.к. структура взаимодейтсвия файлов в проекте MVC обещает быть не тривиально, для подключения библиотек и классов мы будем использовать полный путь к файлу, чтобы измбежать ошибок.
Выведите её значение в браузер.
Дата добавления: 2018-04-04; просмотров: 287; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!