2017年1月11日水曜日

拡張子.htmlでもphpを動かすための愛撫

みなさん、サイト上の共通パーツってどうやって書いてます?

Dreamweaverで生成するほどの規模じゃないし、
Javascriptで生成するとSEO的にもJS切ってるユーザーにも不便。
フレームワーク導入はちょっと抵抗が……

みたいな時!

サーバー側で自動で共通パーツを読み込んで、
htmlで書き出してくれたら楽ですよね。

そこでphpを使ったら楽だなーと思っていたんですが、
拡張子を.phpにするのもちょっと嫌だ。

そんなワガママも通るのがWebの世界。
ああ、なんて素晴らしいんだ!

.html上でphpを動かすには?

.htaccessで「.htmlでもphpの記述があったら動くようにしてちょ」と示すだけ。
ただここで「phpどこ?」とか「いきなり言われてもわからんがな」ってなることもあり、
その場合はphpの置いてある場所を教えてあげなきゃいけないようです。

サーバーによって大丈夫なところもあるので、基本的には.htaccessを書き換えればOK。

大丈夫なサーバーってどこよ?

やってみて「謎のエラーでページが表示されないー!?」じゃ最悪なので、
サーバーごとに説明しているページを見つけるのがベター。

そしたら、なんか一覧にしてくれてる親切な人が!

【サーバー別】HTML上でPHPを実行するための.htaccessの記述
http://m630.net/archives/816
→遠藤 誠:@makoto_endoさんによる記事

これを見ると、サーバーによってすんごい面倒だったりも。

うっかり知らずに.htaccessを書き換えりゃいいだろ的に対応してたら、
目も当てられない状況になるところでした。

というか実際なりましたw

どんな風につかってるの?

共通項目の切り出しと使い回し

例えば、既存のページで、共通項が結構ある場合、
それぞれを毎回手書きで書いてたらダルいし、
ナビに追加や変更があったとき、全部置換しなきゃいけない。

ヘッダやナビ、フッタなんかは共通して同じものを出すので、
別のhtmlにまとめておいて、phpで呼び出すようにすれば、
ひとつのhtmlを更新するだけで良くなる。超便利。

Copyright表示もスッキリ

フッターによくある「Copyright ©2015」なんてのも、
phpで書いておくと自動更新されて便利!

IDも自動で振っちゃう。

ページごとの処理をcssやjQueryで制御したい時のために、
<body id="about">
などとしておくのに、いちいち書くのもダルい。

そんな時は、切り出したhtmlの中で変数から書くようにしておくといい。
<body id="<?php echo$pageid?>">
みたいな感じに。

この例みたいにページIDだったら、
ファイル名を取得して拡張子ケズれば、
自動でIDが割り振られる。便利。

こうしておくと例えば「ページID変えといて」なんて指示に、
ファイル名を変えるだけで対応できる。

追加ページをコピペから作る時なんかに、すごい楽。

descriptionやkeywords、<title>のメタ情報なんかも変数にしておくと、
<h1>や<address>に取り回せるので便利。

端末別の対応もらくらく

ブラウザ対応や、スマホ対応などなど、
ユーザー情報をhtmlに反映できるのはかなり強い。
環境変数から取得して、とりあえずbodyのクラスにでもつっこんでおくと、
何かのときにcssだけで対応できる。

テンプレ化もかんたん

テンプレとなるページを組んでおき、
その中でページごとに変わる内容だけ変数化すればいい。

具体的には、変数にhtmlを書いていって、
テンプレ上で変数を呼び出して書き出す。

レイアウト変更とか多い場合はこっちのほうがいいかもしれない。
季節ごとにリニューアルしたいって案件もあるもんね。

まとめ

メンテ性、更新性、それから拡張性。
htmlでphpを使えるって、こんなふうにメリットいっぱい。

デメリットはphpまわりの知識がちょっと必要になるくらい?
htmlがプログラムとして処理されるので、
脆弱性は高まるかもしれない。

個人サイトとか、顧客情報を扱わない規模だったら、
ぜんぜん使っていける手法だよね。

htmlがわかるならphpもそんなに難しくない。

0 コメント:

コメントを投稿