-1

ディレクトリの 1 つ全体で一貫したメニューがあります。例えば、

メインページ ドキュメントページ 写真ページ

このようなメニューを各ページに含めることができると期待しています。ただし、今回は少し異なります。リンク先が同じでも、個々のページによって生成されるリンクが異なる必要があるからです。例として、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]?>'>

>

今のところ、メニューをコピーして各ファイルに貼り付け、必要に応じて URL を変更していますが、これはあまり満足のいく解決策ではありません。メニュー自体に何らかの if ステートメントを作成して、メニューを含むページによって正しいリンクが生成されるようにするにはどうすればよいですか?

4

2 に答える 2

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); ?> '>
于 2013-03-24T11:52:39.490 に答える
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をご覧ください。

于 2013-03-24T12:03:44.373 に答える