如果此页显示此其他显示此

时间:2011-11-03 14:55:38

标签: php if-statement

在除联系页面之外的所有页面上,我希望它在inc-header.php include中显示以下内容。

<p><a href="contact.php">Contact</a></p>

在页面contact.php上,我希望它显示:

<p><a href="index.php">Home</a></p>

这可能是正确的吗?

5 个答案:

答案 0 :(得分:19)

<?php
if (stripos($_SERVER['REQUEST_URI'], 'contact.php')){
     echo '<p><a href="index.php">Home</a></p>';
}
else{
     echo '<p><a href="contact.php">Contact</a></p>';
}

答案 1 :(得分:5)

if ($_SERVER["SCRIPT_NAME"] == '/contact.php') {
    echo '<p><a href="index.php">Home</a></p>';
} else {
    echo '<p><a href="contact.php">Contact</a></p>';
}

答案 2 :(得分:3)

有一个名为$_SERVER['PHP_SELF']的全局变量,其中包含当前请求的页面名称。结合basename(),这应该有效:

if( basename($_SERVER['PHP_SELF'], '.php') == 'contact' ) {
    // Contact page
} else {
    // Some other page
}

答案 3 :(得分:1)

快速而肮脏的解决方案是:

<?php
$current_page = 'contact';
include('inc_header.php');
....
?>

在inc_header.php中:

<?php
if($current_page == 'contact') {
    // show home link
} else {
    // show contact link
}
?>

答案 4 :(得分:0)

您可以使用简单的if语句来执行此操作,但这仅适用于您的联系页面。你也可以在你的inc-header文件中使用一个简单的函数,如下所示:

function LinkToPageOrHome( $script, $title ){
   if ( strtolower( $_SERVER[ 'SCRIPT_NAME' ] ) == strtolower( $script) ){
       $script = 'home.php';
       $title = 'Home';
   }
   echo '<p><a href="' . $script. '">' . htmlentities( $title ) . '</a></p>';
}

从设计的角度来看,这是一种直截了当的方法,但您可以在多个模板中使用LinkToPageOrHome( 'page.php', 'My Page' );,而不必担心页面链接到自身。