Sometimes it's necessary to have arbitrarily dynamic strings as parts of the regular expression pattern. These strings may contain characters that have special meaning to the regular expression engine, and for the engine to interpret them literally they need to be escaped, or "quoted."
This function takes the input string and puts a backslash in front of every character that can be interpreted as part of regular expression syntax. If the optional delimiter parameter is specified, the function also escapes the delimiter character in the string. This is useful for escaping the delimiting characters required by the PCRE functions (/ is the most common delimiter).
// Suppose $search_url comes from a user form $search_url = "http://www.domain.com?id=43"; $q_search_url = preg_quote($search_url, '/'); echo "quoted search url: $q_search_url\n"; // perform search preg_match_all("/(href|src)=$q_search_url/", $page, $match);This example produces the following output:
quoted search url: http:\/\/www\.domain\.com\?id=43All of the special regular expression characters have been escaped.
PHP Functions Essential Reference. Copyright © 2002 by New Riders Publishing (Authors: Zak Greant, Graeme Merrall, Torben Wilson, Brett Michlitsch). This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). The authors of this book have elected not to choose any options under the OPL. This online book was obtained from http://www.fooassociates.com/phpfer/ and is designed to provide information about the PHP programming language, focusing on PHP version 4.0.4 for the most part. The information is provided on an as-is basis, and no warranty or fitness is implied. All persons and entities shall have neither liability nor responsibility to any person or entity with respect to any loss or damage arising from the information contained in this book.