문제

스크립트의 깨끗한 경로를 반환하는 다음 기능이 있습니다.

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, '#');

두 번째 논쟁, '#', 당신이 당신의 경우 당신이 당신의 경우 당신의 경우 당신이 당신의 경우 당신의 경우 당신이 #.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top