前回は、CGIとは何かというお話をしました。
CGIとは、HTMLを動的にかえることができるもので、
掲示板を例にとると、ユーザー(第26話の図でいえば「読者さん」)が
何か掲示板などに入力して、送信したら
その入力した項目によって、掲示板に掲載されるというものでした。
CGIがどういう役割をしたかということを踏まえまして、
今回は、前の第25話、メンテナンスのしやすさを
CGIを使ってやるということを考えて見ます。
CGIはプログラムで動的なページを作り出すことから、
幅広いことができます。
例えば、あるレイアウトのHTMLを繰り返し出力し、
中にある情報だけ入れ替えて、リスト表示することができます。
わかりやすい例が、掲示板ですね。
掲示板、1つ1つの書き込みは、
同じレイアウトでも、どんどん増えてきますよね。
1個の書き込みをしたら、1つ、
10個の書き込みをしたら、10個違う情報をもちながらも、
同一のレイアウトが10個できます。
もし、これをHTMLで実現すると、
1つのテーブルを作って、同じレイアウトのテーブルを10個に複製して
その後、10個別々の情報を入れ込む作業をしないといけません。
100個あれば、100個HTMLを作成、100個情報を入れ込む
なんてことをしないといけません。
さすがにそんなことをやると大変になってしまいます。
そこで活躍するのが、CGIなのです。
CGIは、同じレイアウトのHTMLを繰り返し出力し、
情報だけ入れ替えて、掲示板のように、レイアウトを作っています。
一般に、CGIは掲示板などに使われがちですが、
実は、普通のリンクのページなどにも利用できます。
ミディリンのリンクでも同じようなことをやっています。
基本のレイアウトとなるHTMLをかたどったCGIをつくり、
それとは別に、それぞれのリンクの情報(掲示板で言えば、書き込んだ情報)
を100件分のデータをcsvというファイルで持っておきます。
「csvファイル」とは、テキストデータで、「,」(カンマ)で区切られたデータのことをいいます。
ドラクエ,ファイナルファンタジー,MIDI
のような「,」で区切られたデータですね。
この区切りの数で、CGIのプログラムの方で、1つのレイアウトで表示するのは
どこの「,」までかということを指定してあげると、
そこで、1つのデータを読み込みを行います。
例えば、
●,◆,▲,★
というデータが
100件あるとします。
●,◆,▲,★・・・1件目
●,◆,▲,★・・・2件目
・
・
・
●,◆,▲,★・・・99件目
●,◆,▲,★・・・100件目
1つのデータで「,」が3個あるので、
「,」が三個まで1つのレイアウトで出力して、
4つ目になったら、次のレイアウトでまた出力して・・・
とのように繰り返すのです。
そうすると、1つのプログラムが
CSVのファイルを1件目~100件目までデータを
繰り返し同じレイアウトで出力してくれます。
この場合の利点として、
たとえば、レイアウトを変えたいと思ったとき、
HTMLで、たとえば100個のHTMLのレイアウトをかえるとなると
すごい手間になります。
通常は、「一括置換」を行い、一気に書き換えを行うのが普通ですが、
これをCGIで作っておくと、レイアウトを出力するCGIのレイアウトを1つ変えるだけで、
100件分のデータが格納されているcsvファイルを
新しいレイアウトで次々と表示してくれるのです。
同じレイアウトを繰り返し出力するとき、
CGIを使うと効率よく変更でき、メンテナンスが楽になるというのは
こういうことなのですね。
CGIは、最初はとっつきにくいのですが、
慣れるととても便利で、更新の手間もすごく楽になります。
また、yahooの検索みたいに、文字列の検索も行えますので
CSVにあるデータを検索して、
該当する項目だけ、HTMLに表示なんていうことも
簡単にできてしまうのです。
今回は、CGIを使うとどういう利点があるのかとういことを紹介しました。
|