スクリプトメモ » SSI
20060613
ランダム表示

SSIではランダムを表現する方法はありませんのでアクセスする時間(秒の下1桁)で判断させています。
アクセスする人の動きそのものや、ネットワークの途中経路が影響するかしないかを頼りにしたランダム表示です。

Apache2.x系、またはApache1.2以上ならたぶん動くと思います。
mod_includeが必要ですが、おそらく標準モジュールです。

中にHTMLを書けば、そのままHTMLが表示されます。
画像を表示する場合は、<img>タグを記述します。
<!--#if>や<!--#elif>の該当部分以外は、ブラウザで見ると表示されません。

<!--#config timefmt="%S" -->
<!--#set var="datesec" value="$DATE_LOCAL" -->
<!--#if expr="$datesec=/[06]$/" -->
アクセスした時の秒が0か6の時は、1つめの画像を表示します。<br>
<img src="a.jpg" alt="1つめの画像" width="240" height="180">
<!--#elif expr="$datesec=/[257]$/" -->
2、5、7秒の時は2つめの画像を表示します。<br>
<img src="b.jpg" alt="2つめの画像" width="240" height="180">
<!--#elif expr="$datesec=/[49]$/" -->
4、9秒の時は3つめの画像を表示します。<br>
<img src="c.jpg" alt="3つめの画像" width="240" height="180">
<!--#else -->
それ以外は4つめの画像を表示します。<br>
<img src="d.jpg" alt="4つめの画像" width="240" height="180">
<!--#endif -->

再読込すると画像を(擬似的に)ランダム表示します。
[an error occurred while processing this directive] アクセスした時の秒が0か6の時は、1つめの画像を表示します。
1つめの画像

中にSSIコマンドを書けば、そのコマンドが実行されます。
ランダムにa.txt、b.txt、c.txtのいずれかをincludeして表示します。

<!--#config timefmt="%S" -->
<!--#set var="datesec" value="$DATE_LOCAL" -->
<!--#if expr="$datesec=/[012]$/" -->
<!--#include virtual="a.txt" -->
<!--#elif expr="$datesec=/[345]$/" -->
<!--#include virtual="b.txt" -->
<!--#else -->
<!--#include virtual="c.txt" -->
<!--#endif -->


Wicker Wings