< | >

htmlの一部をphpで外部ファイル化
  • (2011-07-15 18:41:40)


簡易CMS的発想



小規模なwebサイトではフレームワーク全体を下手にCMS化するより、必要や実需要に応じて、静的なhtmlの一部にphpなどの動的html導入(コンテンツのダイナミックな生成)した方が自然発生的で無理がないweb制作手法かもしれない。

「動的html導入」の考え方が発展するとCMSという発想になるが、そういう需要に至っていない小規模なwebサイトがはじめからガチガチのCMSを導入することはむしろ柔軟性が極端に悪くなり弊害が多いと感じるようになった。

フッター部分など共通部分の切り出し案



当社ホームページはコンテンツの一部にCMSを取り入れているが、やはり主要部分はhtmlファイルが占めている。

しかし、フッターはどのページにも同じ内容で、またGoolge Analyticsの長いスクリプトを全ページに挿入するのも大変。この共通部分は切り出してもよいのではと昔から思いつつそのままだった。

一括置換ソフトを使えば、共通部分の変更もそれほど苦ではない。しかし、時間の経過で微妙にフッターに違いが発生すると一括置換の効用も効きが悪くなる。

共通部分の外部ファイル化



●外部ファイル(external files)化できそうな部分:

・ヘッダー

・サイドメニュー(左)

・サイドメニュー(右)

・フッター

●htmlファイル内でのphpの記述方法:

include、include_once、require、require_once が使える。

デフォルトは include がおすすめか。

<?php include("/home/users/mydomain/ex_footer.php"); ?>

※外部ファイルの拡張子は問わない。txt,html,php,cgi,pl,incなど可。

※相対パスでも絶対バス(フルパス)でもよいが、httl://で始まるURLは不可。

●htmlファイルをphp実行可能(phpモード)にする設定

.htaccessに下記の一行を追加:

AddType application/x-httpd-php .htm .html

※処理速度の差について。phpモードではいったんphpコードを実行しhtmlデータをダイナミックに生成したあと、通常htmlのようにテキスト・画像などを送出するので2段方式の処理となる。

そのため通常htmlより負荷が発生し全体のスループットが低下すると推測される。平均的なWebサーバーとコンテンツでは体感できるほどのスピード差になるとは思えないが、やや悩みどころ。

外部ファイル化を実際にやってみて



上気、外部ファイル化が有望と考えた4部分のうちで、ヘッダー部分はあきらめた。<title>や<description>など個別に記述したいタグがあること。

通常ヘッダー部分にはcssファイルの指定が含まれる。そのため他のパーツや本文の個別の作成やメンテナンス時、cssなしの表示となりメンテナンス性が極端に悪くなる、などがその理由。

<title>、<description>、スタイルシート以外のヘッダー部分を外部ファイル化すれば問題ないかもしれない。






<< htmlページ、文字コード(uft-8とshift_JIS)混在で混乱< | >SOY CMSを試行錯誤 >>
search
layout
admin

[▲page top]