• ベストアンサー
  • 困ってます

PHPでリンクを書きかえるか、baseタグを使うかどちらが良いか?

  • 質問No.4605675
  • 閲覧数129
  • ありがとう数2
  • 回答数2

お礼率 90% (49/54)

PHPを勉強しはじめた初心者です。

サイトに常に表示されているサイドバーをPHPでincludeすることにしました。
なのでページの階層によって、適宜リンクを書き換える必要があります。

私が思いつく方方法は3つほどあります。

(1)階層ごとに毎回PHPでリンクを書き換える。
(2)baseタグを使って、相対リンクの基準を一か所に固定する。
(3)絶対パスでリンクをする。

私としては(1)でやろうと思っていたのですが、なんとなく無駄が多いような気がしました。
ということで、(2)の方法で行こうと思っているのですが、baseタグを使うのはあまり気が進みません。

baseタグを使った例を今まで見たことがないので、そう思ってしまうのですが、常にサイドバーを表示させるような場合は、皆さんはどのようにしているのでしょうか?

他にもっと一般的な方法や、効率的な方法がありましたら、教えていただけると幸いです。よろしくお願いします。

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 75% (6/8)

(3)で解決しています。

ただ、http://~の絶対パスの記述ではなく。
<a href="/test.php">のような、「/」から始まるタグで書いています。

また、階層をなるべく分けないようにしています。
お礼コメント
aiueo667

お礼率 90% (49/54)

アドバイスありがとうございました。

とても恥ずかしいことに、今まで「/」から始まる絶対パスを知らず、httpから始まるのは絶対URIと言うそうですね、勉強になりました……。感謝します。

それで、さらに質問なのですが……、ローカルでPHPの動作確認をする場合は、http://localhost/ で確認をしています。
しかし、複数のサイトを運営しているため、http://localhost/サイト名/~ でサイトを管理しています。「/」から始まる絶対パスではローカルでうまく動作確認をすることができません。

何か解決策はないのでしょうか?
nkzw_spl様のおかげで、かなりの疑問が解決されているのにも関わらず、追加で質問してしまい申し訳ありません……。
投稿日時:2009/01/05 16:54

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 51% (3827/7415)

そういうのはinclude_pathを使うとらくになりますよ。
http://jp.php.net/manual/ja/ini.core.php#ini.include-path
お礼コメント
aiueo667

お礼率 90% (49/54)

貴重な情報ありがとうございます。
とても画期的な方法ですね!今までの悩みがすべてなくなりました。
本当にどうもありがとうございました。感謝します!
投稿日時:2009/01/05 17:27
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ