如果此页面显示此节目显示此
在除联系页面外的所有页面上,我希望它在inc-header.php include中显示以下内容。如果此页面显示此节目显示此
<p><a href="contact.php">Contact</a></p>
在contact.php
的页面,我想让它显示:
<p><a href="index.php">Home</a></p>
这应该是可能的正确吗?
<?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,但是OP没有提及该页面是否为名为'contact.php'的文件。也许基于URL更好? –
谢谢你所有的反馈,上面的工作就完成了。 谢谢! :) – Jezthomp
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>';
}
在我的服务器上,这需要与'/contact.php'进行比较,因为它包含一个前导斜杠。不确定这是否是服务器特定的。 – nickb
的快速和肮脏的解决方案是:
<?php
$current_page = 'contact';
include('inc_header.php');
....
?>
在inc_header.php:
<?php
if($current_page == 'contact') {
// show home link
} else {
// show contact link
}
?>
有一个名为$_SERVER['PHP_SELF']
一个全局变量包含网页的名称目前要求。与basename()
结合这应该工作:
if(basename($_SERVER['PHP_SELF'], '.php') == 'contact') {
// Contact page
} else {
// Some other page
}
你可以用一个简单的if语句做到这一点,但这只会对您的联系人页面工作。你也可以使用在你INC头文件的简单功能,将工作像这样:
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');
,从不担心有一个页面链接到它自己。
为什么不包含一个通用菜单包含到每个文件中的所有链接?只有“家”的联系是上世纪一种过时的做法。 –