Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

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

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

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

Символы

Значение

Примеры

Символы, указывающие расположение искомого элемента в строке.

^

Указывает на то, что символы после знака должны находиться в начале строки.

^заголовок

$

Символы до знака должны находиться в конце строки.

содержание$

Escape последовательности.

\.

Шаблону соответствует знак точки в строке.

Смеркалось\.

\n

Символ перевода строки.

Строка\nЕще строка

\r

Символ возврата каретки.

Текст\r

\t

Символ табуляции.

\tКрасная строка

\v

Символ вертикальной табуляции.

\vнекоторый текст

Задание группы символов.

[ ]

Задают группу символов. Соответствует любому символу из перечисленных в группе. Есть возможность задания диапазона символов с помощью знака - (минус, тире).

[а-яa-z_123]

^

В группе символов соответствует отрицанию последующих символов, то есть указывает символы, не соответствующие шаблону.

[^\n\t]

.

Соответствует любому символу, кроме перевода строки.

.оза

Количественные показатели

*

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

текст\n*дальше текст

?

Символ перед знаком встречается ноль или один раз.

длинн? ое

+

Предыдующий символ повторяется один или большее число раз.

100+

{n}

Символ перед знаком повторяется n-ое число раз.

длин{2}оше{3}

{min, max}

Задает диапазон числа повторений предыдущего символа.

^ab{3,7}

{min,}

Предыдущий символ повторяется min или большее число раз.

слово.{5,}

Логическое определение.

|

Эффект подобен оператору || (OR) в логическом выражении.

раз|два|три

( )

Логическая группировка выражений.

(может)+ повторяться

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

Необходимо сказать, что PHP располагает как собственным механизмом работы с регулярными выражениями (POSIX), так и заимствованным у другого серверного языка программирования Perl. Внешне их легко различить по названиям функций: функции первого типа начинаются с символов "ereg", а второго - "preg".

НЕ нашли? Не то? Что вы ищете?

Но названия функций не единственное их отличие. Прежде всего они содержат некоторые различия в синтаксисе регулярных выражений. Так, Perl-подобные функии требуют разделители:

$str = "регулярное выражение";  // просто строка
$preg = preg_replace("/р.+е/i", "<i>[вырезано]</i>", $str);
$ereg = eregi_replace("р.+е", "<i>[вырезано]</i>", $str);
echo $preg."<br>".$ereg;

Как видите, мы используем функции замены части строки с помощью регулярных выражений. Обратите внимание на шаблон функции preg_replace: в качестве разделителя здесь выступают слеши, причем после закрывающего разделителя следует модификатор i, указывающий, что шаблон является нечувствительным к регистру. Тот же эффект достигается при использовании POSIX функции с суффиксом i (eregi_replace).

Результат выполнения этих функций одинаков:

[вырезано]
[вырезано]

Функция preg_replace в нашем примере проявила так называемую "жадность", и охватила всю строку, которая начинается с буквы "р" и заканчивается "е". Заставить функцию не "жадничать" помогает модификатор U. В этом случае результат ее выполнения будет:

[вырезано] вы[вырезано]ние

Функция нашла минимальное расстояние между буквами "р" и "е" и заменило его указанной строкой.

Функция eregi_replace также проявила "жадность", но изменить этот порядок уже нельзя, так как в POSIX-функциях не предусмотрено использование модификаторов.

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

Функции

Синтаксис

Описание

ereg, eregi, preg_match

функция(pattern, string, [regs])

Ищет в строке string соответствия с регулярным выражением pattern, и сохраняет их в массиве regs (если указано).

preg_match_all

preg_match_all(pattern, subject, matches, [order])

Осуществляет глобальное сопоставление с шаблоном, результаты заносит в matches.

split, spliti, preg_split

функция(pattern, string, [limit])

Разбивает строку в массив посредством регулярного выражения.

preg_grep

preg_grep(pattern, input)

Возвращает массив из элементов массива input, соответствующих шаблону pattern.

Примеры на регулярные выражения.

Перевод времени в стандартное время Unix.

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

Как вы понимаете, вручную заниматься этим - сумасшествие, так что напишем сценарий, который будет на первом этапе приводить дату к виду часы:минуты:секунды месяц/день/год, а затем с помощью функции strtotime() переведить эту запись в стандартное время UNIX, которое мы сможем отображать, как захочется.

Самое интересное - первый этап. Он-то нас и интересует в плане использования регулярных выражений.

$str = "12:57:4"; // $str содержит некоторую дату
$str = preg_replace("!(\d{2})\.(\d{2})\.(\d{2})!", "\\2/\\1/\\3", $str);

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

    \\0 - содержит строку, соответствующую всему шаблону (в нашем примере "10.03.02"). \\1 - содержит символы, соответствующие только первому элементу, заключенному в скобки (то есть "10"). \\2 - содержит символы, соответствующие только второму элементу, заключенному в скобки (то есть "03"). и так далее.

На этом этапе мы получем дату "12:57:43 - 03/10/02". Теперь доводим это до конца.

$str = str_replace("-", "", $str); // вырезаем знак "-"
$time = strtotime($str);

Теперь можно использовать переменную $time, как заблагорассудится.

На этом и закончим наш урок. Встретимся на следующем!

Урок 15. Основы MySQL.

Человек - единственное животное на свете,
способное смеяться и рыдать, ибо из всех живых
существ только человеку дано видеть разницу
между тем, что есть, и тем, что могло бы быть.
Уильям Хэзлитт

Вот мы и дошли с вами до этого долгожданного для многих момента, когда наши веб-приложения (а уже не просто скрипты), разрастаясь, уже не могут удовлетвориться теми средствами, которые использовались ранее. Работа с файлами становится непомерно мучительной, те разбухают до необыкновенных размеров, делая невозможным их дальшейшее использование. Команды работы с файлами и содержащимися в них данными занимают сотни строк кода, и вы в конце концов понимаете, что так продолжаться больше не может. Требуется более удобное и надежное хранилище для многомегабайтной информации. И в итоге приходите к использованию баз данных, что вполне закономерно.

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

Установка MySQL.

Прежде, чем мы начнем знакомство с MySQL, вам необходимо установить эту базу данных на своей машине. Скачать дистрибьютив можно с этой страницы. Рекомендуется выбирать те версии, напротив которых написано "stable release". В помощь прочтите главу из официальной документации "MySQL Installation".

Итак, надеясь, что инсталляция MySQL прошла успешно, продолжаем наш урок и сейчас научимся без посредников в лице PHP, через консоль взаимодействовать с этой базой данных. Для этого зайдите в директорию, в которую вы установили MySQL, найдите там папку bin и откройте в ней файл mysql. exe.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13