0

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

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

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

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

对于其他任何事情,尽管我希望它是假的。

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

我的第一个 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;

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

1 回答 1

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;
于 2012-08-06T17:20:11.610 回答