在除联系页面之外的所有页面上,我希望它在inc-header.php include中显示以下内容。
<p><a href="contact.php">Contact</a></p>
在页面contact.php
上,我希望它显示:
<p><a href="index.php">Home</a></p>
这可能是正确的吗?
答案 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' );
,而不必担心页面链接到自身。