为包含的菜单创建if语句

时间:2013-03-24 11:47:36

标签: php

我的菜单在我的一个目录中都是一致的。例如,

主页 文件页面 照片页面

我希望能够在每个页面中包含这样的菜单,我就完成了。但是,这次它有点不同,因为即使目标是相同的,各个页面生成的链接也必须不同。以链接到galleries.php页面为例:

From the Home page:       <a href='galleries.php?id=<?=$id?>'>
From the Documents page:  <a href='galleries.php?id=<?=$doc[lid]?>'>
From the Photos page:     <a href='galleries.php?id=<?=$photo[lid]?>'>
From the Productss page:  <a href='galleries.php??id=<?=$product[lid]?>'>

&GT;

我现在要做的是将菜单复制并粘贴到每个文件中,并根据需要更改URL,但这不是一个非常令人满意的解决方案。如何在菜单本身中构建某种if语句,以便包含菜单的页面生成正确的链接?

2 个答案:

答案 0 :(得分:0)

$_SERVER['REQUEST_URI']可以为您提供当前所在的页面,您可以使用它来确定您应该链接到的位置。

示例:

function displayGalleryId($lid) {
    $uri = $_SERVER['REQUEST_URI'];
    switch ($uri) {
        case '/home.php':
            $link = $id;
            break;

        case '/documents.php':
            $link = $doc[$lid];
            break;

        // Others here...

        default:
            $link = 'gallery.php';
    }

    return $link;
}

示例用法:

<a href='galleries.php?id=<? displayGalleryId($lid); ?> '>

答案 1 :(得分:0)

你需要使用$ _SERVER全局数组.. 你可以使用$ _SERVER ['SCRIPT_FILENAME']或$ _SERVER ['REQUEST_URI']

它可以像

function getLink($id)
{
 $uri             = $_SERVER['REQUEST_URI'];
 $is_page_home    = (strstr($uri, 'home') === true)?true:false;
 $is_page_photos= (strstr($uri, 'photos') === true)?true:false;
 $is_page_document = (strstr($uri, 'document') === true)?true:false;
 if( $is_page_home )
 {
    $urlid = $id
 }
 if( $is_page_photos)
 {
   $urlid = $doc[$id]
 }
 if( $is_page_document )
 {
  $urlid = $photo[$id]
}
return $urlId
}

$urlId =  getLink($id)

<a href='galleries.php??id=<?=$urlId?>'>

了解有关服务器变量的更多信息http://php.net/manual/en/reserved.variables.server.php