Итак, у меня есть переменная, скажем «$ x». Я должен избежать набора специальных символов, если они появляются в этой строке. Персонажи, которых я хочу избежать:
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
Я не очень хорошо разбираюсь в регулярных выражениях, но я думаю, что именно так я должен это делать, да?
Я могу избежать их, как str_replace("+","\+",$x);
для каждого специального символа, но я не уверен, что именно так это и должно быть. Любые указатели кто-нибудь?
Вы можете использовать функцию preg_quote. Он ставит обратную косую черту перед каждым символом, который является частью синтаксиса регулярного выражения. Это полезно, если у вас есть строка времени выполнения, которую нужно сопоставить в некотором тексте, и строка может содержать специальные символы регулярного выражения.
Других решений пока нет …