#!/usr/bin/perl # 携帯電話で適切な画像を振分ける為のスクリプト(平成16年 6月 3日)。 # 平成16年 2月 3日 さいたま・しらぎくさいと # (c)2004 Marguerite Site, Saitama, Japan. # www.marguerite.jp # 画像データの入ったディレクトリ。 # 1. GIF・PNGとも、必ずディレクトリ構造を一致させること。 # 2. いずれも末尾は「/」にすること。 $gif='./ ... /'; #GIF画像を納めている最上位ディレクトリをこのスクリプトからの相対パスで記述する。 $png='./ ... /'; #PNG画像を納めている最上位ディレクトリをこのスクリプトからの相対パスで記述する。 $png_url='http:// ... /'; #PNG画像を納めている最上位ディレクトリを指すURLを記述する。 # 画像データの拡張子。 # 1. 大文字小文字を込めて、全リソースの拡張子を統一すること。 $gif_ext='GIF'; #GIF画像の拡張子。 $png_ext='PNG'; #PNG画像の拡張子。 $addr=''; foreach (split(/[&;]/,$ENV{'QUERY_STRING'})) { tr/+/ /; s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/ego; ($i,$j)=split(/=/,$_); if ($i eq "a") { $j=~s/\A\/+//; $j=~s/\.\.\///g; $j=~s/[\|<>]//g; $j=~s/\.\w*\Z//g; $addr=$j; } } $_=$ENV{'HTTP_USER_AGENT'}; $addr.='.'.(/\AJ-PHONE\// || /UP\.Browser/ || /UP\.Link/) ? $png_ext:$gif_ext; ($type,$i)=(/\AJ-PHONE\// || /UP\.Browser/ || /UP\.Link/) ? ('image/png',$png):('image/gif',$gif); open (F,"$i$addr"); binmode(F); $i=''; while () { $i.=$_; } close(F); $j=length($i); print "Content-Type: $type\nContent-Length: $j\n\n$i";