NodownMemo

html→PHPにしてみた

公開:

実の所、かなり前(去年の12月くらい……?)のことではあるのですが、PHPを始めてみたよという記事になります。

各ページの共通部分を何とかしたい

自分でサイトを作り始めて割とすぐ感じたのが、共通部分が思ったよりも多い!ということです。
たとえば一番上のサイトロゴと一番下のコピーライト。この2つはどのページでも共通です。 今後つけるつもりのメニューバーも全部のページで共通になるでしょうし、トップページの新しい記事リストなんかも各カテゴリの記事リストページと内容がかぶっています。

コピペで済む分アナログよりはマシとはいえ、変更が必要になった時に全ページに再コピペするのは面倒の極みです。更新に飽きなければページ数は増えていきますし、今の2倍3倍くらいでも考えるだけで大分ウンザリします。あと絶対に事故るでしょうし。

この辺を自動的にうまくやってくれるのがブログサービスやWordPressなわけですが、それに頼らない以上は自分で何とかする必要があります。
ということで共通部分は別ファイルにして、それを読み込むようにすることにしました。

悩む過程をすっ飛ばしましたが、そういうことができるということは知っていて実はやったこともあるためだったりします。とはいえやり方はすっかり忘れていて、CSSやJavaScriptほど簡単じゃなかったような記憶はあるけど、具体的にどうやるんだっけ……?というあたりからのスタートです。

iframeとPHPとSSI

方法を調べてみた所、iframeとPHPとSSIの3つが見つかりました。
それぞれどう違うんだ?というのは以下で。

iframe

iframeはHTMLタグです。
そのため特別なことをしなくてもすぐに使えるのが長所です。
ただ自分はframe系のタグを使うのに抵抗があるのでこれは選択肢から除外します。(最初に教わった時にframeをページレイアウトに使うなよーとかなり念を押されたので)

ちなみに昔メニューバーなどを作るのによく使われていたframeタグはHTML5では廃止になっています。iframeはHTML4.1で非推奨だったものの、HTML5では非推奨がはずれているので使うこと自体は問題ありません。

といってもやはりページの基本レイアウトをiframeでやるのはあまり良くないようです。
なら何に使うのならいいのかというと、たとえばGoogleマップやYoutubeの動画、Amazonの商品画像といった外部サイトの情報を埋め込んだり、ゲームやアニメのサイトでよく見かける新着情報をトップページに小窓で埋め込んだりといった使い方が主みたいです。

PHPとSSI

この2つはサーバ側で機能します。
PHPはプログラミング言語、SSIはサーバの機能です。
レンタルサーバの場合はまずこれらが使える環境かを確認する必要があります。

といってもPHPはWordPressにも使われているのでまず問題ないと思います。個人向けの安いレンタルサーバであればむしろサービスのウリとして積極的にサポートされているくらいでしょう。
SSIは使えないか、使えてもかなり制限が掛かっているはずです。一般的なレンタルサーバは一つのサーバにたくさんのユーザが同居していますから。サーバへの命令権限が複数ユーザに全開放されているとセキュリティ的に問題しかありません。
たとえば自分が使っているロリポップの場合は、絶対パスが使えない・上位ディレクトリ参照が機能しないなど、個人に割り当てられている領域以外にアクセスできないような制限がかかっているようです。

またどちらもCSSやJavaScriptと同じようにHTMLタグと混ぜて命令を書くことができます。拡張子は.htmlではなく、それぞれ.phpと.shtml(.shtm)になります。
この拡張子で思い出したのですが、自分が前に使ったのはSSIだったみたいです。そういえばshtmlを使った覚えがあります。

PHPにしてみた

で、まぁタイトルの通りPHPにしてみました。
実はこれを書いている時点ですでにタイトルロゴとコピーライトは別ファイルになっていたりします……という風に書かない限りパッと見では分からないのがサーバ側で処理してもらうメリットですね。
もちろん複雑な処理をさせると動作が重くなってくるというデメリットもあります。ただそれはお金を積んでレンタルサーバのプラン変更をすればある程度どうにかなる部分なので。実際に重くなって困った時に考えればいいかなと思います。

将来的にはMySQLまで手を伸ばしたい所ですが、とりあえずはトップページの記事リストを各カテゴリの記事リストの方から更新日を参照してデータを拾ってくるような形にできたらいいなーと考えています。
今はこの辺が手動更新なので結構めんどうくさいことになっているのです……

1回使ったことのあるSSIではなくPHPにしたのはそういうあれこれをやるのにプログラミング言語の方が都合が良かったためです。自作に挫折して(もしくは飽きて)WordPressのお世話になるとしてもPHPを多少かじっていればノー知識でやるよりもマシでしょうし。

JavaScriptでもいいのですが、あれは閲覧する側でオフにしてしまうことができるので基本構造の所にはあまり使いたくないのですよね。
CSS・Cookie・JavaScriptをオフにして豆腐(真っ白画面)になるのはダサいのでやめるようにと教わったのでどうにも抵抗があります。SSIの使い方だとか細かい所はすっかり忘れているのにこういう話はしっかり覚えているのが不思議ですが。

面倒も増えた……

PHPにしたのはいいものの面倒も増えました。言語の習得的なこととは別口で。
といっても必要な面倒というか、いつかはどうせぶち当たる面倒で、1回クリアしてしまえば済む面倒なので仕方がないのですけど。
具体的にはPC側で動作チェックするためにPHP環境をインストール&設定、ついでにメモ帳タグ打ちを卒業してエディタを導入してインストールしたPHP環境と紐づけ。includeの仕様上、相対パスだと都合が悪くなったのでルートパスを使うことにしたらXAMPPのバーチャルホスト設定が必要になった上に、今度はテスト環境を本番環境の1ディレクトリに突っ込んであったのが問題になってサブドメインを作って切り分けたりとか……今の所サイト作業に使った時間は半分以上がこういう設定作業に取られてます。
この辺のドタバタについて詳しくはまた別の記事で。

上に戻る

[PR]