画像を表示する

 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");
となります。

Open Source Web Architecture Top

(first uploaded 2002/01/02 last updated 2002/09/06, URANO398)

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!