确定URI / URL中的最后一个文件夹

时间:2012-08-06 17:08:02

标签: php

我是php新手并尝试根据用户网址返回true / false。 (在drupal中使用它) 例如,如果用户位于:

http://www.example.com/training我希望它返回真实

http://www.example.com/training/home我希望它返回真实

http://www.example.com/browse/training/results/ *我希望它返回真实

对于其他任何事情,虽然我想要它是假的。

http://www.example.com/training/backpacking我希望它返回false。

我的第一个PHP脚本有一个bug ...去图。无论如何,它并没有显示在任何不受训练的情况下,但它确实显示在不需要的训练子区域。

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;

Adnan ......我不确定你的编辑是什么,但我发现了一个拼写错误,它现在正在使用此代码:

<?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;
?>

1 个答案:

答案 0 :(得分: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;