在除聯繫頁面外的所有頁面上,我希望它在inc-header.php include中顯示以下內容。如果此頁面顯示此節目顯示此
<p><a href="contact.php">Contact</a></p>
在contact.php
的頁面,我想讓它顯示:
<p><a href="index.php">Home</a></p>
這應該是可能的正確嗎?
在除聯繫頁面外的所有頁面上,我希望它在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');
,從不擔心有一個頁面鏈接到它自己。
爲什麼不包含一個通用菜單包含到每個文件中的所有鏈接?只有「家」的聯繫是上世紀一種過時的做法。 –