コーポレイトサイト(htmlによる静的なサイト)で
ヘッダーナビなど共通部分をPHP includeしてみたのですが
ナビゲーションの現在地をページ毎に切り替える方法はあるのでしょうか?
ご存じでしたら是非教えてください。
例えば以下のソース
<例>
# index.html
<?php include("include.php"); ?>
# include.php
<ul>
<li><strong>ホーム</strong></li> ← ※現在地
<li><a href="service.html">サービス</a></li>
<li><a href="company.html">会社概要</a></li>
<li><a href="contact.html">お問い合わせ</a></li>
</ul>
index.htmlにアクセスした時は、ホームのみ<strong>ホーム</strong>、
service.html時は、サービスのみ<strong>サービス</strong>、
company.html時は、会社概要のみ<strong>会社概要</strong>、
contact.htmlは、お問い合わせのみ<strong>お問い合わせ</strong>、
と現在地を切り替えたいです。
何か条件によって切り替えるシンプルな方法があると助かります。
phpは素人なので意味不明な事を言っていたらすみません、
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
単に共通のナビ欄からリンクを外したいだけですよね?
いろいろな方法がありますが、素人ということで見た目に分かりやすい置換ではどうでしょう。
=====include.php======
<?php
//変数に一旦全部入れる。
$line = <<<EOF
<ul>
<li><a href="index.html">ホーム</a></li>
<li><a href="service.html">サービス</a></li>
<li><a href="company.html">会社概要</a></li>
<li><a href="contact.html">お問い合わせ</a></li>
</ul>
EOF;
//実行中のページ名を取得
$current_page = basename( $_SERVER['PHP_SELF']);
//置換前の部分を設定
$reg = "#<li><a href=\"$current_page\">(.+)</a></li>#i";
//置換して出力
echo preg_replace($reg,"<li><strong>$1</strong></li>",$line);
この回答への補足
JaneDueさんありがとうございます。
試したら一発でstrongに変換されちょっと感動しました(>_<)
<a href="index.html">ホーム</a>はstrongになったのですが、
以下のようなパスだとstrongになりませんでした。
../aaa/bbb/index.html
/aaa/bbb/index.html
http://domain.com/aaa/bbb/
http://domain.com/aaa/bbb/index.html
度々すみませんが、宜しければ教えてください。
No.4
- 回答日時:
補足拝見しました。
置換前の状態が今ひとつよく分からないのですが、実際のinclude.phpでは <a href="index.html">ホーム</a>だけではなく、<a href="../aaa/bbb/index.html">○○○</a>
<a href="http://domain.com/aaa/bbb/">△△△△</a>
など、いろいろな書式が混ざっている、ということでしょうか?
様々な階層に同名ファイルもあるようなら、この方法は面倒でダメですね。
リンクをすべてhttp://~の絶対パスで統一できませんか?
それなら現在のURLを置換するだけなので簡単ですが…。
JaneDueさんありがとうございます。
説明不足ですみません。
実際のinclude.phpでは絶対パスのみです。
もし案件によって相対パスなどがあった場合に出来るのかなと思っただけでした。
include.phpに関しては今後も絶対パスで統一するようにします。
ホント助かりました、
ありがとうございます。
No.2
- 回答日時:
先ほど回答した者です。
パンくずのことですね。
先のURLを取得して以下のようにやってみるのはどうでしょう?
(if文で分岐させて表示内容を変える方法です)
※実験していないので適宜書き換えて下さい
// ここでURLを変数に格納して。。。例えば $file
<?php if ($file === "index.html"){ ?>
// indexの時は<strong>タグ
<ul>
<li><strong>ホーム</strong></li>
<?php }else{ ?>
// indexの時ではない時<a>タグ
<ul>
<li><a>ホーム</a></li> ← ※現在地
<?php } ?>
休日に返信いただきありがとうございます。
パンくずではなく、ナビゲーションのことなのですが
パンくずもstrongにしたかったので良かったです。
この方法を試して見ます。
No.1
- 回答日時:
対象ファイルの文字列をチェックして、その時に現在地(TITLEのことですかね?)を動的に変更すればどうでしょうか?
ex.
<strong><?php echo $genzaichi; ?></strong>
参考
http://d.hatena.ne.jp/notintrade/20071213/119755 …
この回答への補足
回答をありがとうございます。
jojo_さんすみません、私の説明が悪かったです。
可能でしたら再度教えて頂けないでしょうか?
以下のようにincludeした時に、<a>タグを<strong>に変更したいです。
<例>
<?php include("include.php"); ?>
# index.html(ホーム)
<ul>
<li><strong>ホーム</strong></li> ← ※現在地
<li><a href="service.html">サービス</a></li>
<li><a href="company.html">会社概要</a></li>
<li><a href="contact.html">お問い合わせ</a></li>
</ul>
# service.html(サービス)
<ul>
<li><a href="index.html">ホーム</a></li>
<li><strong>サービス</strong></li> ← ※現在地
<li><a href="company.html">会社概要</a></li>
<li><a href="contact.html">お問い合わせ</a></li>
</ul>
# company.html(会社概要)
<ul>
<li><a href="index.html">ホーム</a></li>
<li><a href="service.html">サービス</a></li>
<li><strong>会社概要</strong></li> ← ※現在地
<li><a href="contact.html">お問い合わせ</a></li>
</ul>
# contact.html(お問い合わせ)
<ul>
<li><a href="index.html">ホーム</a></li>
<li><a href="service.html">サービス</a></li>
<li><a href="company.html">会社概要</a></li>
<li><strong>お問い合わせ</strong></li> ← ※現在地
</ul>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- HTML・CSS htmltとcssの連携をして画像縮小について 1 2022/11/15 20:32
- HTML・CSS CSSが上手く反映されないみたいです 2 2022/11/21 16:19
- HTML・CSS インラインブロックの中のテキストを上下中央に合わせたい 1 2022/12/24 17:46
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
inet コントロールを用いてHTML...
-
mod_rewriteでQUERYパラメータ...
-
ASPソースコードをPHPソースコ...
-
拡張子htmlでphpが動作するフォ...
-
「旭日中綬賞 」とはどんな賞で...
-
phpの階層が変わると上手く読み...
-
起動後しばらくするとカウント...
-
htmlファイルをincludeして、文...
-
PHPで作るフレーム、どんな風に...
-
文字化けで混乱中です...
-
MVC構造で、各コントローラで共...
-
階層が違う場合の絶対パス相対...
-
PHPについて、あまりにも初歩的...
-
ジャンプ前のページのURL を表...
-
RSS非対応サイトから情報収集
-
以下のコードでエラーが出てし...
-
【BAT(バッチ)ファイル】Web...
-
フォントの色を変えるには?
-
別ファイルの変数を呼び出した...
-
onedrive にexcelファイルをア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
centos6のlogにscript not foun...
-
includeでHTMLファイルを呼出し...
-
1桁7セグメントLEDの部品高さ
-
includeにより他の部分が表示さ...
-
文字化けで混乱中です...
-
別階層のPHP関数を使うには?
-
wordpress等のように、htmlを各...
-
SSI される .inc ファイル内に ...
-
コードがそのまま表示される
-
これを作成するにはPHP?CGI...
-
phpの階層が変わると上手く読み...
-
正規表現を使い、URLで条件分岐...
-
九州各地の美味しいものをお取...
-
Fatal error: OpenPNE設置時の...
-
html拡張子のままphpを使いたい
-
「旭日中綬賞 」とはどんな賞で...
-
青森県産のカルヴァドス
-
php セレクトボックス 分岐 ...
-
ZendFrameWorkで、.htaccessを...
-
以下のコードでエラーが出てし...
おすすめ情報