2013-02-11 3 views
1

내 서버가 이제 PHP 5.3에서 실행되는 전화 나는 EREG이 전화를 대체해야합니다등가()는

if (preg_match('~/$~', $pref) === FALSE) 
:

if (ereg("/$", $pref) === FALSE) 
{ 
    $pref .= '/'; 
} 

내가 어떤 성공없이 많은 가운데,이 시도

결과는 http://example.com/index.phpwww/browse 차이가있을 경우, 이것은 제가 계승 한 CodeIgniter 1.6.1 앱입니다. @PeterM로

if (ereg("/$", $pref) === 0) 

제안 지금 http://example.com에가는 http://example.com/index.php/www/browse에 나를 필요하지만 그 날의 메시지를 제공합니다

나는이 시도 "당신이 문자를 허용했다 제출 된 URI를." 이것이 유효한 CodeIgniter URL입니까? 어쩌면 코드에서 다른 부분을 엉망으로 만들었 을까요?

나는 것으로 CodeIgniter의/응용 프로그램/설정/config.php 파일의 라인 (126)을 변경 :

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 

와 난 여전히 메시지가 나타납니다.

답변

3

이 아니라 0과 비교하십시오. preg_match은 일치하는 수를 반환합니다. 오류시에만 false을 반환합니다.

+0

있지만, 나에게 "당신이 제출 한 URI가 문자를 허용하지 않았습니다."라는 메시지를 전합니다. 나는 내 질문을 업데이트 할 것이다. –

+0

성냥보다 다른 문제가있는 것 같습니다. 시도 var_dump –

+0

좋아, 나는 그 시도를 줄 것이다. –

2
if(substr($pref, -1) !== '/'){ 

} 

OR : 나는 그렇게했고, 지금은 http://example.com에가는 http://example.com/index.php/www/browse 나 소요

if($pref[strlen($pref)-1] !== '/'){ 
//not found 
} 
+0

정확히 부울 false가 포함될 것으로 예상되는 문자열의 끝은 어떻게됩니까? OP는 라인의 끝에서 거짓이 아닌'/'를 확인하려고합니다. –

+0

@MarcB : 오, 편집. –

+0

편집 된 답변이 적합합니다. –