連絡先ページ以外のすべてのページで、inc-header.phpインクルードに次の情報を表示します。ページcontact.php
でこのページのURLを表示するこれを表示する
<p><a href="contact.php">Contact</a></p>
、私はそれを表示する:
<p><a href="index.php">Home</a></p>
これは正しいことが可能でなければなりませんか?
連絡先ページ以外のすべてのページで、inc-header.phpインクルードに次の情報を表示します。ページcontact.php
でこのページのURLを表示するこれを表示する
<p><a href="contact.php">Contact</a></p>
、私はそれを表示する:
<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
迅速かつ汚いソリューションです:inc_header.phpで
<?php
$current_page = 'contact';
include('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
}
をあなたがあれば、簡単な文でそれを行うことができますが、これが唯一の連絡先ページのために動作します。また、そのように動作しますあなたの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');
を使用し、決してを心配でした自身へのページリンク。
なぜ共通のメニューを含めないと、各ファイルへのすべてのリンクが含まれていますか?ちょうど "家"のリンクを持つことは、過去の世紀の練習の時代遅れの方法です。 –