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


(PHP 4, PHP 5)

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

Описание

string preg_quote ( string $str [, string $delimiter = NULL ] )

Функция preg_quote() принимает строку str и добавляет обратный слэш перед каждым служебным символом. Это бывает полезно, если в составлении шаблона участвуют строковые переменные, значение которых в процессе работы скрипта может меняться.

В регулярных выражениях служебными считаются следующие символы: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

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

str

Входная строка.

delimiter

В случае если указан необязательный параметр delimiter, он будет также экранироваться. Это удобно для экранирования разделителя, который используется в PCRE функциях. Наиболее распространенным разделителем является символ '/'.

Возвращаемые значения

Возвращает экранированную строку.

Список изменений

Версия Описание
5.3.0 Символ - теперь экранируется

Примеры

Пример #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);
?>

Примечания

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

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