PHP: Регулярные выражения: Расширенные возможности
Расширенные возможности регулярных выражений в PHP позволяют решать более сложные задачи, такие как обработка текста, очистка данных и защита от уязвимостей. Рассмотрим некоторые из этих возможностей.
Захват групп: Группы позволяют извлекать определенные фрагменты текста:
Обратные ссылки: Обратные ссылки позволяют использовать захваченные группы в замене:
Positive Lookahead: Проверяет, что после текущего положения есть определенный паттерн:
Negative Lookahead: Проверяет, что после текущего положения нет определенного паттерна:
Positive Lookbehind: Проверяет, что...
Захват групп и обратные ссылки
Захват групп: Группы позволяют извлекать определенные фрагменты текста:
ВыделитьPHP
preg_match('/(\d+) (\w+)/', '123 apples', $matches);
// $matches[1] => '123', $matches[2] => 'apples'Обратные ссылки: Обратные ссылки позволяют использовать захваченные группы в замене:
ВыделитьPHP
preg_replace('/(\w+) (\w+)/', '$2, $1', 'John Doe');
// Результат: 'Doe, John'Утверждения (Lookahead и Lookbehind)
Positive Lookahead: Проверяет, что после текущего положения есть определенный паттерн:
ВыделитьPHP
preg_match('/apple(?= pie)/', 'I love apple pie'); // Вернет trueNegative Lookahead: Проверяет, что после текущего положения нет определенного паттерна:
ВыделитьPHP
preg_match('/apple(?! pie)/', 'I love apple juice'); // Вернет truePositive Lookbehind: Проверяет, что...
- Жалоба
PHP: Регулярные выражения: Разбор URL с помощью preg_match
Регулярные выражения (регэкспы) — мощный инструмент для работы с текстом, позволяющий решать широкий спектр задач, связанных с поиском, извлечением и обработкой данных. Одна из распространенных задач — разбор URL-адресов, когда нужно извлечь отдельные части (модуль, тип, идентификатор) из URL. В этой статье мы рассмотрим, как это сделать с помощью функции
Рассмотрим шаблон регулярного выражения, который помогает извлечь части URL:
preg_match() в PHP.Пример регулярного выражения
Рассмотрим шаблон регулярного выражения, который помогает извлечь части URL:
ВыделитьPHP
preg_match('%^/(?<module>[-\w\d]+)(?:/(?<type>[-\w\d]+))?(?:/(?<id>[-\w\d]+))?/?$%', $urlPath, $match);Разбор регулярного выражения
%^/: начало строки, после которого идёт косая черта (/).(?<module>[-\w\d]+): именованная группа захвата для выделения модуля. Допускаются буквы, цифры, тире и подчёркивание.(?:/(?<type>[-\w\d]+))?: необязательная группа захвата для типа. Опционально присутствует после косой черты.(?:/(?<id>[-\w\d]+))?: необязательная группа захвата для идентификатора. Опционально
JavaScript: Как получить URL текущей страницы
На JavaScript можно легко получить полный адрес текущей страницы с помощью объекта
...
window.location.Объекты и свойства, которые помогут получить полный URL
window.location.href: возвращает полный URL текущей страницы.window.location.protocol: возвращает протокол (например,http:илиhttps:).window.location.host: возвращает хост (например,example.comилиsub.example.com).window.location.pathname: возвращает путь (например,/folder/file.html).window.location.search: возвращает строку запроса (например,?param=value).window.location.hash: возвращает фрагмент (часть после символа#).
Пример использования
ВыделитьJavaScript
console.log(window.location.href); // Полный URL страницы
console.log(window.location.protocol); // Протокол (например, http:, https:)
console.log(window.location.host); // Домен (например, example.com)
console.log(window.location.pathname); // Путь (например, /folder/file.html)
console.log(window.location.search); // Строка запроса (например,Как выбрать оптимальное условие в SQL-запросах
Эффективное составление SQL-запросов — ключевой фактор производительности и корректности работы с базами данных. Одно из важнейших решений при составлении запроса — выбор правильного условия отбора данных. В этой статье мы рассмотрим, как выбрать оптимальное условие для ваших запросов.
Типичные условия SQL-запросов
- Операторы сравнения (
=,!=,<,>,<=,>=):
Самые распространённые операторы для сравнения значений. - Условия диапазонов (
BETWEEN,IN,NOT IN):
Используются для отбора данных в пределах диапазона или множества значений. - Агрегативные функции (
SUM,AVG,MIN,MAX):
Помогают анализировать большие объёмы данных. - Паттерны (
LIKE,ILIKE):
Работают с текстовыми полями, осуществляя поиск по образцам. - Специальные условия (
EXISTS,IS NULL,IS NOT NULL):
Проверяют наличие данных или их отсутствие.
Критерии выбора условий
- Эффективность:
Чем быстрее запрос выполнится, тем лучше. Всегда оценивайте стоимость запроса (особенно для больших баз данных). - Производительность:
Использование индексов
MySQL: Как добавить поле в таблицу
Иногда возникает необходимость добавить дополнительное поле в существующую таблицу MySQL. Например, для хранения новых данных или для внесения улучшений в структуру базы данных. Сделать это можно с помощью команды
Общая схема:
Пример:
Допустим, у тебя есть таблица
Порядок действий:
Допустим, ты хочешь добавить поле
...
ALTER TABLE.Общая схема:
ВыделитьSQL
ALTER TABLE имя_таблицы ADD COLUMN имя_поля тип_данных [CONSTRAINTS];Пример:
Допустим, у тебя есть таблица
users, и ты хочешь добавить поле birthday типа DATE:
ВыделитьSQL
ALTER TABLE users ADD COLUMN birthday DATE;Порядок действий:
- Определи таблицу: Укажи имя таблицы, в которую нужно добавить поле.
- Выбери имя поля: Придумай понятное и короткое имя для нового поля.
- Выбери тип данных: Выбери подходящий тип данных (например,
INT,VARCHAR,DATE,DATETIMEи т.п.). - Задай ограничения: Можно добавить ограничения (например,
NOT NULL,DEFAULT,UNIQUEи т.д.).
Пример с дополнительными параметрами
Допустим, ты хочешь добавить поле
email типа VARCHAR(255) и сделать его обязательным (NOT NULL):
ВыделитьSQL
ALTER TABLE users ADD COLUMN email VARCHAR(255)
Реклама




