SSIについて

 肝心なSSI(Server Side Include)についての解説を飛ばしていましたので、遅ればせながらご説明したいと思います。

 SSIは、Webページ中に埋め込まれたコマンドを、そのWebページの読み出し要求があった時に実行して、その結果をWebページに埋め込み、要求を出したユーザーに対してページを送り出します。CGIと異なる点は、Webページ中から直接そのスクリプトを呼び出す事ができ、結果をそのページに反映させられる事です。通常の設定では、ファイル名を*.shtmlとしたページでSSI機能を利用する事が出来ます。

 実は、ここのコンテンツはKOMONETサイトのものをそのまま使わせてもらってます(^^ゞ

SSI コマンド一覧

SSIでは、以下のようなコマンドが利用できます。

#command

option

value

#config errmsg 文字列
timefmt フォーマット
sizefmt bytes
abbrev
#include file ファイル名
virtual ファイル名
#echo var DOCUMENT_NAME
DOCUMENT_URL
DATE_LOCAL
DATE_GMT
LAST_MODIFIED
QUERY_STRING_UNESCAPED
#fsize file ファイル名
virtual ファイル名
#flastmod file ファイル名
virtual ファイル名
#exec cmd 外部コマンド名
cgi CGIプログラム名

#config・・・SSIを使った時の出力形式を指定

[書式]<!--#config xxx="..." --> (xxx=errmsg, timefmt, sizefmt)

 このコマンドは、実際にサーバーでコマンド命令を実行するのではなく、これ以降でSSIを使った時の出力形式を指定する為に使います。このコマンドのオプションには、errmsg、timefmt、sizefmtの3種類があります。

(1)errmsg="..."

 SSIを実行している間にエラーが発生した時に出力するメッセージを設定します。引数には、好きなメッセージを入れる事が出来ます。

例:<--#config errmsg="SSI失敗です。" -->

(2)timefmt="..."

 日付やファイルの最終更新時間を表示する時のフォーマットを指定します。引数は、以下の表にあるようなフォーマットで指定します。

%m

月(01から12)

&d

日(01から31)

%y

年(00から99)

%D

mm/dd/yy形式の日付

%H

時(00から23)

%M

分(00から59)

%S

秒(00から59)

%T

HH:MM:SS形式の時刻

%A

曜日

%h

省略形の月(JanからDec)

%r

AM/PM表記による時刻

%a

曜日の省略形(SunからSat)

%b

月の名前の省略形

%B

月の名前

%c

LC_TIMEで指定されているdateの形式

%l

時間(00から12)

%p

午前または午後

%Y

西暦(省略なし)

例:<!--#config timefmt="%m月%d日" -->

(3)sizefmt="..."

 ファイルサイズを表示する時のフォーマットを指定します。引数には、"bytes"または"abbrev"を指定します。"bytes"を指定した場合はバイト単位で正確に表示し、"abbrev"を指定した場合はKBまたはMB単位で表示します。

例:<!--#config sizefmt="bytes" -->

#include・・・他のファイルを取り込む

[書式]<!--#include xxx="..." --> (xxx=file, virtual)

 他のファイルを取り込んで表示させたい時に使います。このコマンドは、元となるファイルと同じか、又はそれ以下のディレクトリにあるファイルを取り込む場合と、他のディレクトリのファイルを取り込む場合とによって2種類のオプションを使い分けて指定します。

(1)file="..."

 元となるファイルと同じか、又はそれ以下のディレクトリのファイルを取り込む時に使います。

例1:<!--#include file="hoge.htm" -->

例2:<!--#include file="hogedir/hoge.htm" -->

(2)virtual="..."

 同じサーバー内のファイルだが、元になるファイルよりも上のディレクトリにあるファイルなどを取り込む時に使います。ただしここでは、URL形式で取り込みたいファイル名を指定します。

例:<!--#include virtual="/~foo/hoge.htm" -->

#echo・・・ファイル名・現在時刻などを表示

[書式]<!--#echo var="..." -->

 ファイル名、最終更新時間、現在時刻など、サーバー側にあらかじめ定義されているいくつかの変数を表示する時に使います。実際に使用する時は、#echoコマンドのオプションであるvarの引数に変数名を入れます。主な変数は以下の通りです。

DOCUMENT_NAME ファイル名
DOCUMENT_URL URL
DATE_LOCAL 時間(ローカル)
DATE_GMT 時間(グリニッジ標準時)
LAST_MODIFIED 最終更新時間

例1:今日は<!--#echo var="DATE_LOCAL" -->です。

例2:<!--#config timefmt="%m月%d日" -->

   今日は<!--#echo var="DATE_LOCAL" -->です。

#fsize・・・ファイルサイズの表示

[書式]<!--#fsize xxx="..." --> (xxx=file, virtual)

 ファイルサイズの表示に使います。オプションの指定方法は#includeコマンドと同じくfileとvirtualです。

例:<!--#config sizefmt="bytes" -->

  <!--#fsize file="hoge.htm" -->

#flastmod・・・最終更新時刻の表示

[書式]<!--#flastmod xxx="..." --> (xxx=file, virtual)

 ファイルの最終更新時刻の表示に使います。オプションの指定方法は#includeコマンドと同じくfileとvirtualです。

例:<!--#config timefmt="%m/%d %H:%M" -->

  <!--#flastmod file="hoge.htm" -->

#exec・・・シェルコマンド・CGIプログラムを実行

[書式]<!--#exec xxx="..." --> (xxx=cmd, cgi)

 シェルのコマンドやCGIプログラムを実行し、その結果をページに取り込みたい時に使います。シェルコマンドを実行する時のオプションはcmd、CGIプログラムを実行する時のオプションはcgiを指定します。また、cmdで実行する場合は、基本的に「../」などの相対ディレクトリ指定をする事は出来ません。

例:<!--#exec cgi="/cgi-bin/counter.cgi" -->

ファイル操作 前へ

HOME

次へ 各種定型サブルーチン