php preg_replace () 컴파일 실패 : 누락)
-
16-09-2019 - |
문제
스크립트의 깨끗한 경로를 반환하는 다음 기능이 있습니다.
function cleanPath($path) {
$path = (string) $path;
$path = preg_replace(
array(
'#[\n\r\t\0]*#im',
'#/(\.){1,}/#i',
'#(\.){2,}#i',
'#(\.){2,}#i',
'#('.DIRECTORY_SEPARATOR.'){2,}#i'
),
array(
'',
'',
'',
'/'
),
$path
)
;
return rtrim($path,DIRECTORY_SEPARATOR);
}
PHP는 오류를 제공합니다.
경고: preg_replace () [function.preg-replace] : 컴파일 실패 : 누락)에서 오프셋 7 C : wamp www extlogin app ni inc classes cfiletree.php 라인에 18
무엇이 잘못되었고 그것을 고치는 방법에 대한 아이디어가 있습니까?
고맙습니다.
해결책
아마도 가능성이 높습니다 DIRECTORY_SEPARATOR
~이다 \
그것은 그것이 탈출한다는 것을 의미합니다 )
백 슬래시와 일치하기보다는. 당신은 탈출해야합니다 DIRECTORY_SEPARATOR
그래서 그것이됩니다 \\
성과에서.
정규 표현식으로 배치 된 줄을 탈출하는 가장 안전한 방법은 사용하는 것입니다. preg_quote
:
preg_quote(DIRECTORY_SEPARATOR, '#');
두 번째 논쟁, '#'
, 당신이 당신의 경우 당신이 당신의 경우 당신의 경우 당신이 당신의 경우 당신의 경우 당신이 #
.
제휴하지 않습니다 StackOverflow