How to escape only certain characters

escaping, php, regex

Solution

This may help you:

<?php
$subject = "+ - && || ! ( ) { } [ ] ^ \" ~ * ? : /";
$result = preg_replace('%([+\-&|!(){}[\]^"~*?:/]+)%', '\\\\$1', $subject);
echo $result;
?>

http://ideone.com/EYV1ID

Problem

php function `preg_quote` escapes these characters `. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -` Could you please suggest what I could use to escape these characters: `+ - && || ! ( ) { } [ ] ^ " ~ * ? : /` Edited (as requested by "on hold"): I'm implementing a `Solr` search and it says: Solr gives the following characters special meaning when they appear in a query: + - && || ! ( ) { } [ ] ^ " ~ * ? : / To make Solr interpret any of these characters literally, rather as a special character, precede the character with a backslash character .

Original source