2013-05-11 2 views

답변

2

글쎄, 그 예제를 uri로 전달하면 10 행에 당신이 preg_quote($uri)입니다. 그것이 이유가되어야합니다. 도트 (.)가 Regex에서 의미를 가지므로이 함수는이를 이스케이프 처리합니다.

하지만 당신이 그 슬래시를 제거하면 정규식이 도트 (점을 포함하여) 대신 문자와 일치하므로 믿기를 바랍니다. 따라서 이들 중 어떤 것도 유효합니다 :

indexBphp 
index-php 
indexmphp 
index.php 
etc... 

이 위치의 문자는 Regex의 의미로 모든 문자와 일치합니다. 그래서 저는 잘못된 것은 아무것도 없다고 생각합니다. 그렇죠? 당신은 여전히 ​​두 개의 부분으로 정규식을 구축 할 수있다 그 점을하려면이 문제를 해결하는

한 가지 방법은 :

$urlDivided = explode('.php', $url); 
$this->finalRegex = preg_quote($urlDivided[0]) . '.php' . preg_quote($urlDivided[1]); 

물론, 위의 방법은 항상 '.PHP'이 있다고 가정 확장 URL. 정신 건강 검사를해야합니다.

+0

해결책은 URL에서 index.php를 항상 제거하고 싶습니다 :-) 또는 전체 코드를 다시 생각해보십시오. – Bogdan