preg_quote

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_quoteЭкранирует символы в регулярных выражениях

Описание

preg_quote(string $str, ?string $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);
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также