PHPによるSMILドキュメントの生成
ここまで静的なSMILドキュメントをいくつか見てきましたが、PHPを使ってSMILを生成することもできます。まず次のヘッダー群を出力する必要があります。
header("Content-type: application/smil");
header ("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 29 Jul 2000 07:00:00 GMT");
header('Content-Disposition: attachment; filename="test.smil"');
- 最初のヘッダーは、ドキュメントにSMILコードが含まれていることをブラウザに知らせます。SMILドキュメントに対応するMIMEタイプは
application/smilです。 - 2番目のヘッダーは、キャッシュされたコンテンツを無視して最新のバージョンをダウンロードするようにブラウザに指示します。これが必要な理由は、同じURLから異なる時間に異なるドキュメントを動的に生成することもあり得るからです。
- 3番目のヘッダーは、現在の日付よりも古い日付を使用している現在のドキュメントを期限切れにします。これにより、ブラウザが現在のドキュメントをキャッシュするのを防ぎます。
Content-Disposition: attachment; filename="test.smil"ヘッダーは、動的に生成されたSMILドキュメントを他のファイルと同様にダウンロードするようにブラウザに指示します。
これらのヘッダーが揃ったら、動的なSMILドキュメント自体を生成できます。この例は前に示したものと同じ「using_images.smil」ドキュメントです。
<?php
header ("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 29 Jul 2000 07:00:00 GMT");
header ("Content-Type: application/smil");
header('Content-Disposition: attachment; filename="using_images.smil"');
?>
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.l//EN"
"http://www.w3.org/2005/SMIL2l/SMIL2l.dtd">
<smil xmlns="http://www.w3.org/2005/SMIL2l/Language">
<head>
<layout>
<root-layout width="250" height="250" backgroundColor="black" />
</layout>
</head>
<body>
<seq>
<img src="flower1.jpg" dur="1s" />
<img src="flower2.jpg" dur="2s" />
<img src="flower3.jpg" dur="3s" />
</seq>
</body>
</smil>
このコードをWebサーバーのルート直下の「smil」というフォルダに保存してください。flower1.jpg、flower2.jpg、flower3.jpgという3つの.jpgファイル(サンプルコードを参照)もsmilフォルダにコピーしてください。それが済んだら、http://localhost/http://localhost/smil/using_images.phpsmil/using_images.phpをブラウズすることで、この例を実行できます(図4を参照)。

