Web屋の呟き

2021.05.14


久々に阿波おどりアクセサリーのご注文をいただきました。新型コロナの影響で、各地のイベントがことごとく中止になっており、阿波おどり関連の催しなども少なくなっている(またはほぼない)ので、小物の注文数も激減しております。
でも、激減していてもこうやって時々は注文をいただけると嬉しいです。あまり間が開きすぎると作り方を忘れてしまったり(笑)していけません。常に作り続けていないと。
2021.05.10


前回のブログで、「具体的なincludeの方法については、ネットで検索してね」と書きましたが、それではあまりに不親切すぎますので、本ブログでも記載しておきます。




■PHPの場合


まず、埋め込みたいコンテンツを用意します。
doctype宣言もタグもも必要ありません。埋め込みたい内容だけでいいです。
適当なファイル名をつけて保存します。(例えば、header.htmlなど)
保存場所は特に決まりはないですが、ヘッダやフッタなど全ページ共通の部品をインクルードするなら、第一階層(そのサイトの一番上の階層)がいいでしょう。

次に、受ける側のファイルの中の、埋め込みたい場所に、インクルード用の特殊なタグを挿入しておきます。
例えば、



こんな感じで。
ダブルクォーテーションで挟まれた文字列は、埋め込みたいコンテンツ部品のファイル名を記述します。相対パスが使えますので、例えばheader.htmlが第一階層にあり、それを埋め込みたいファイルが第二階層にあった場合は、



と記述すれば一つ上の階層を参照します。




■SSIの場合


埋め込みたいコンテンツは上記PHPと全く同じです。これを用意しておきます。

次に、埋め込みたい場所にインクルード用のタグを記述します。、



このように記述すればうまくいきます。
ちなみに、これは第一階層にheader.htmlがある場合です。相対パスではなく絶対パスなので、受け側のファイルがどの階層にあってもちゃんとheader.htmlを読み込みます。
2021.05.09


サイト内で、例えばヘッダやフッタなど、各ページに同じコンテンツを使用したい場合に、各ページにいちいち同じ記述をしていくのは大変です。また、修正をしなくてはならなくなったときには全ページ直さなくてはなりません。4~5ページしかないサイトならともかく、何十ページ、何百ページもある巨大なサイトでは途方に暮れます。

これを、効率的に行うために、よく使われるのが「インクルード」という手法です。
A.埋め込み用のファイルを一つ用意する(各ページ共通の部品)
B.埋め込まれる側(受け側。各ページ)に、埋め込み用のタグを記述する

埋め込みの方法としては、主に、
1.PHPを使う
2.SSIを使う
3.Dreamweaverなどのテンプレート機能を使う
これらがよく使われる技法ですが、3のDreamweaverのテンプレート使用の場合は、そもそもDreamweaverを持っていなければ使えませんので、一般的には上記1か2になるでしょう。

PHPとSSIのどちらがいいかについては、これまたネットで調べると山ほど出てきて、細かくベンチマークをとって調べている人もいたりしますが、実際にどちらがいいかについては諸説あり、明確に「こっち!」とは言えないのが現状です。
私の個人的な意見としては、「どっちもさほど変わらないのでは?」と思っています。昔は、サーバーに負荷がかかるということが言われていましたが、最近のサーバーは性能が格段に良くなっているため、そんなに言うほどの負荷はかからなくなっているか、比較するほどの差はないような気がします。
現に、各社サーバーとも「PHP、SSI共に使用可能です」というようにアナウンスしてますから、どちらにしても特に問題はないのでしょう。

さて、具体的なincludeの方法については、ネットで検索すれば山ほど出てくるので、それを参考にしていただくとして、ここでは、注意点についてお知らせしておきます。(というより、自分が忘れないように備忘録として)


インクルードする場合の、.htaccessの記述に注意


まず、PHPを使う場合は、本来、埋め込むファイルも埋め込まれるファイルも、拡張子を「.php」にする必要があります。しかし、現実には既に作成済(またはある程度作成が進んでいる)の場合が多いと思うので、拡張子は「.html」から変更したくないですよね。
そこで、.htmlをPHPとして認識させるために、.htaccessというファイルに、「ある記述」をしてそれをサーバーにアップしておけばOKです。

厄介なことに、サーバーによって.htaccessの記述方法が微妙に違うことがあるので、注意が必要です。
私もネットで調べた情報に従って記述したら、私が使用しているサーバーではうまく作動しなかった(エラーが返された)ので困ったことがありました。
ちなみに、ConoHaサーバーでは、

AddType application/x-httpd-lsphp .html

と書きます。

次に、SSIを使う場合です。こちらも本来はファイル名の拡張子を「.shtml」にする必要があります。しかしこれもPHPと同様の理由で、拡張子を「.html」のまま使いたいので、.htaccessに記述を加えます。
こちらもやはりサーバーによって微妙に違っていて、エラーが返されることがあります。
ちなみに、ConoHaサーバーでは、

AddType text/html .html
AddHandler server-parsed .html

と記述します。

PHPの場合もSSIの場合も、他のサーバーではまた違った記述が必要になる場合がありますので、ネットで検索するか、サーバー会社に直接問い合わせてみてください。

コンテンツ案内

お問い合わせはこちらまで

お電話:088-635-9346

株式会社ピクセル工房
〒779-3120
徳島県徳島市国府町南岩延251-1

▲PAGETOP▲

- CafeLog -