• ベストアンサー

【HP作成】全ページに同じ文字を表示させる方

HP作成で、全てのページにメニューを載せたいのですが、 それだと、ページ数が多くなれば、ページを増やす度に、 全てのページを編集しなおさないと行けないと思います。 何か、一つのページを書き換えるだけで、 全てのページに反映させる方法って無いでしょうか? (作成ソフトは使っておらず、テンプレートを使い、 ソースを書き換えて作成しています。) 自分なりに、調べると、「document.write」というのがあるらしいのですが、 最新のHTMLでは推奨されていないようなので、 何かいい方法は無いかと探している状態です。 お詳しい方、お知恵を貸してください! よろしくお願いします。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

最も簡単なのは、ご利用のサーバーでSSI(Server Side Include)です。 HTMLに <!--#include file="nav.txt" --> や <!--#include virtual="/ssi/nav.txt" --> と記入して、外部ファイルを埋め込んでしまう方法です。 file= は、自身がある場所かそれより下位のファイル。virtual=はパスでかけますから、どこにでも置けます。(ルートからのパスで書いておくとHTMLがどこにあってもよい) またPHPを使う方法もあります。 <?php include_once("./nav.txt");?> など・・ ・SSIは拡張子.shtml、PHPは.phpになりますが、これは.htmlに変更も出来ます。   htmlに変更されている場合、ユーザーには仕組みはわかりません。 ・いずれも、ローカルでテストは出来ませんが、  ローカルにHTTPサーバー/PHPをインストールすれば、サーバーにアップする前にテストできます。 ※ページ自体がCMS(コンテンツマネージメントシステム)を利用して作成される場合は、もちろんテンプレートになります。  ローカルにテスト環境がない場合は、高機能なテキストエディタで置換することが出来ます。たとえばEmEditorでしたら、正規表現を使用してファイルを開くことなくすべてのファイルの指定位置をかきかえることができます。 (<!-- navi start -->\n).*(\n<!-- navi end -->) ↓置換 \1 <div class="section"> <ol> <li><a href=""></a></li> 略 </ol> \2 とか・・・

toppy22
質問者

お礼

意外に簡単そうですね! ありがとうございます^^