|
HTMLのIMAGE SRC=タグで表示する画像ファイルを動的に決定したいような場合にも、
PHPを使うことができます。
下の例は、アクセスされた時刻の秒の下1桁によって、
10種類のアイコン画像のうちどれかひとつを表示するサンプルです。
<?php
/* 画像を表示するサンプル */
header("Content-Type: image/gif");
#header("Content-Type: image/jpeg");
$m = date("s") % 10;
$imagedir = "/usr/icons";
$images = array("dummy",
"icon01.gif", "icon02.gif", "icon03.gif",
"icon04.gif", "icon05.gif", "icon06.gif",
"icon07.gif", "icon08.gif", "icon09.gif");
function showImage($filename){
$size = filesize($filename);
if(($fin = fopen($filename, "rb")) == FALSE){
/* fopenのbはUNIXでは不要 */
return -1;
}
$data = fread($fin, $size);
fclose($fin);
print $data;
return 0;
}
showImage($imagedir . "/" . $images[$m]);
?>
|
PHPの出力結果が画像データであることをヘッダに指定する必要があります。
これはheader関数で、
「image/gif」「image/jpeg」などを画像フォーマットに応じて指定します。
本題と関係ない注意点を添えると、
まず配列を定義するには、PHPではarray
という組み込み関数を使います。
PHPの配列はAWKのそれとよく似ていて、
基本は連想配列です。連想配列というのは「キー」と「値」を組にして、
例えば
$season["haru"] = "Spring";
$season["natsu"] = "Summer";
$season["aki"] = "Autumn";
$season["fuyu"] = "Winter";
このように1つの変数$seasonに4つの値を持たせることができます。
C言語でいう配列はPHPではこのバリエーションです。つまり、
$month[0] = "";
$month[1] = "January";
$month[2] = "February";
$month[3] = "March";
と、キー(添字)に数字を使うと配列のできあがりです。
これらの場合、array関数の構文は
$season = array("haru" => "Spring", "natsu" => "Summer",
"aki" => "Autumn", "fuyu" => "Winter");
$month = array("", "January", "February", "Month");
となります。
(first uploaded 2002/01/02 last updated 2002/09/06, URANO398)
|