コーポレイトサイト(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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
階層が違う場合の絶対パス相対...
-
includeでHTMLファイルを呼出し...
-
文字化けで混乱中です...
-
移動元のURLを変数に取りたい
-
ドラえもんDVD 2112年ドラえも...
-
透過PNGが透過されない!!
-
データベースへの持続的接続
-
onedrive にexcelファイルをア...
-
MySQLのdatetime型の月日0を削...
-
ラッパークラスって何ですか?
-
.phpと.incファイルの違いはな...
-
ファイルの行数取得
-
バッチを用いたフォルダの自動移動
-
Subversionのリポジトリの削除
-
リンク先を隠す方法はないでし...
-
FTPコマンドでディレクトリごと...
-
include先でのinclude元の変数...
-
PHPで新しいウインドウで開く命...
-
FORMで送信ボタンと戻るボタン...
-
PHPにて外部サイト内容が取得不...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
centos6のlogにscript not foun...
-
コードがそのまま表示される
-
PHP file_get_contents 503 ser...
-
PHPファイルのシンボリックリン...
-
ZendFrameWorkで、.htaccessを...
-
バージョンアップしたら「次の...
-
htmlをphpにするにあたってデメ...
-
botを作っているのですが、oaut...
-
モジュールモードとCGIモードと...
-
PHPで下記のサイトのスクリプト...
-
青森県産のカルヴァドス
-
phpでhtmlタグを使用したい
-
Dreamweaver MX の講習会を探し...
-
拡張子htmlでphpを動かす
-
if文について
-
ランチャの作り方
-
wordpress等のように、htmlを各...
-
厚い本を開きっぱなしにしてお...
-
モーニング娘。の「抱いてHord...
-
php セレクトボックス 分岐 ...
おすすめ情報