2009-12-17 2 views
4

들어오는 데이터를 어떻게 벗어나서 preg_replace()의 패턴으로 사용할 수 있습니까? 예를 들어,이 문자열에 대해 일치해야합니다preg_replace() 및 adds.에 대한 addslashes()입니다.

/vorschau/ 

는 분명히, 나는 "V"를 탈출이 필요하거나 내가 오류가 발생합니다.

설명서에서 아무것도 찾을 수 없습니다. 어떤 종류의 이것에 대한 addslashes() 또는 식 내의 해결 방법이 있습니까? 내가 제대로 질문을 이해한다면

답변

18

, 당신은 preg_quote를 찾고 있습니다 :

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

preg_quote()str를 받아 정규 표현식 구문의 일부이며 모든 문자 앞에 백 슬래시를 둔다.
일부 텍스트에서 일치해야하는 런타임 문자열이 있고 문자열에 에 특수한 정규식 문자가 포함 된 경우 유용합니다.

특수 정규 표현식 문자는 다음과 같습니다 . \ + * ? [^] $ () { } = ! < > | : -

+0

정확히 내가 뭘 찾고 모르는 지요. 감사! –

+0

@Pekka : 당신은 환영합니다 :-) (나는 어떤 사람이 다시 고안해 내고이 기능을 다시 코드하려고 시도한 코드를 보았을 때 싫지만 실제로 ^^) –

0

당신이 무엇을하려고 할 수 있다는 것을 확실히 할 수 있기 때문에 아마도 더 상세하게 상황을해야 당신이 preg_quote을 원하는 것처럼 보이지만 않습니다 더 좋은 방법.

+0

preg_quote()입니다. 요청 URI에서 기본 디렉토리를 제거해야합니다. 예 : '/ mydirectory/xyz/123'에서'/ mydirectory'를 제거하면'/ xyz/123'이되고'preg_replace()'는 가장 우아한 방법입니다. 더 좋은 해결책을 가지고 있다면 멀리 날아가십시오! –

+2

'$ stripped = substr ($ fullpath, strlen ($ basedir)); ' –

+0

좋아요, 요점이 있습니다! 좋은 것. –