preg_quote

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

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

Описание

string preg_quote ( string str [, string delimiter] )

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

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

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

Пример 1. preg_quote() пример

<?php
$keywords
= "$40 for a g3/400";
$keywords = preg_quote($keywords, "/");
echo
$keywords; // возвращает \$40 for a g3\/400
?>

Пример 2. Выделение курсивом слова в тексте

<?php
// В данном примере preg_quote($word) используется, чтобы
// избежать трактовки символа '*' как спец. символа.

$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$textbody = preg_replace ("/" . preg_quote($word) . "/",
                          
"<i>" . $word . "</i>",
                          
$textbody);
?>

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