preg_quote
(PHP 4, PHP 5, PHP 7)
preg_quote — Экранирует символы в регулярных выражениях
Описание
$str
, string|null $delimiter
= null
) : string
Функция preg_quote() принимает строку str
и добавляет обратный слеш перед каждым служебным символом.
Это бывает полезно, если в составлении шаблона участвуют строковые переменные,
значение которых в процессе работы скрипта может меняться.
В регулярных выражениях служебными считаются следующие символы:
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #
Обратите внимание, что символ /
не является служебным.
Замечание:
Обратите внимание, что preg_quote() не предназначена для применения к строкам $replacement функции preg_replace() и т.д.
Список параметров
-
str
-
Входная строка.
-
delimiter
-
В случае, если указан необязательный параметр
delimiter
, он будет также экранироваться. Это удобно для экранирования разделителя, который используется в PCRE-функциях. Наиболее распространенным разделителем является символ/
.
Возвращаемые значения
Возвращает экранированную строку.
Список изменений
Версия | Описание |
---|---|
7.3.0 |
Символ # теперь экранируется
|
7.2.0 |
delimiter теперь допускает значение null.
|
Примеры
Пример #1 Пример использования preg_quote()
<?php
$keywords = '$40 за g3/400';
$keywords = preg_quote($keywords, '/');
echo $keywords; // возвращает \$40 за g3\/400
?>
Пример #2 Выделение курсивом слова в тексте
<?php
// В данном примере preg_quote($word) используется, чтобы
// избежать трактовки символа '*' как спец. символа.
$textbody = "Эту книгу *очень* тяжело найти.";
$word = "*очень*";
$textbody = preg_replace ("/" . preg_quote($word, '/') . "/",
"<i>" . $word . "</i>",
$textbody);
?>
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
- Регулярные выражения PCRE
- escapeshellcmd() - Экранировать метасимволы командной строки