2012-08-06 2 views
0

저는 PHP에 익숙하지 않고 사용자 URL에 따라 true/false를 반환하려고합니다. 나는 그것이 내가 그것이 사실 반환 할 *이URI/URL의 마지막 폴더를 결정하십시오.

http://www.example.com/browse/training/results/ true를 반환 할

http://www.example.com/training/home true를 반환 할

http://www.example.com/training :에서 사용하기 쉬운 경우 예를 들어, 그래서 을 (드루팔이 사용)

나는 그것이 틀리더라도 다른 것을 위해.

http://www.example.com/training/backpacking 거짓을 반환하고 싶습니다.

내 최초의 PHP 스크립트는 버그가 있습니다 ... 그림보기. 어쨌든 그것은 훈련을 받고 있지 않은 것에는 나타나지 않지만 그것이 바람직하지 않은 부분 훈련 영역에 나타납니다.

global $language; 
$curr_uri = check_plain(request_uri()); 

if ($language->language == 'en') 
    if (basename(dirname($curr_uri)) == 'training') 
     return TRUE; 
    else 
     return FALSE; 
else 
    return FALSE; 

필자는 달성해야 할 개념을 이해합니다. 세 가지 특정 URI를 확인하고 다른 것에 표시하지 않으려합니다.

global $language; 
$curr_uri = check_plain(request_uri()); 

if ($language->language == 'en') 
    if ($curr_uri == '/training/home') 
     return TRUE; 
    else 
     return FALSE; 
else 
    return FALSE; 

아드 난 ... 난 당신의 편집이 무엇인지 확실하지 않다 그러나 나는 오타를 발견하고이 코드를 지금하고있다 : 나는 또한 시도하면 비록도

<?php 
    global $language; 
    $curr_uri = check_plain(request_uri()); 

if ($language->language == 'en') 
    if($curr_uri == '/training/home' || $curr_uri == '/browse/training/results') 
    return TRUE; 
    else 
    return FALSE; 
else 
    return FALSE; 
?> 
+0

'if' 또는'else' 다음에 하나의 문장 만 있으면, 읽기 쉽도록'{}'를 사용하는 것이 좋습니다. 관련 문제에 대해서는 URL에서 패턴을 볼 수 있는지 잘 모르겠지만 '양호한'URL의 공통점은 무엇입니까? – Adi

+0

[ "편집 된 blah blah ago"] 링크 (http://stackoverflow.com/posts/11832780/revisions)를 클릭하여 편집 내용을 볼 수 있습니다. – Adi

+0

오 그렇군. 그래서 저는 자바 스크립트처럼 {}을 사용합니다. PHP에 익숙하지 않아서 Google에서 문자 그대로 읽은 코드 스 니펫을 취하고 있으며 {}이 (가) 없었습니다. – GPGVM

답변

2
$pairs = array( array('training'), 
       array('training','home'), 
       array('browse','training','results')); 

$urls = explode('/',$_SERVER['REQUEST_URI']); 

foreach($pairs as $pair){ 
    if (!empty(array_diff($pair,$urls))) 
    return true; 
} 

return false; 
+0

답변 해 주셔서 감사합니다. 한두 줄에 OP의 실수를 설명하고 문제를 해결하기 위해 수행 한 작업이나 코드의 내용을 설명하는 것이 좋습니다. – Adi

+0

Ahhh 문제를 해결하는 또 다른 좋은 방법. 배열을 사용하면 if 문을 사용하지 않고 더 많은 기준을 사용할 수 있습니다. – GPGVM

관련 문제