去年の9月にスマートフォン用サイトの製作に着手して、長いこと途中のまま放置状態でした。
今年の1月からまた作り始めました。
作成にあたって、気になった点をつれづれなるままに記録としてのこしてます。
<phpによるデバイスの振り分け>
携帯デバイスと同様に、iPod,iPhone,Androidといったスマートフォンのデバイスからアクセスがあった場合、それらを判断してスマートフォンサイトにジャンプする。
以前に、携帯デバイス振り分けをphpで記述したので、同様にphpで記述した。
<記述>
<?php
// 携帯振り分け
$ua = $_SERVER['HTTP_USER_AGENT'];
if(
strpos($ua, 'DoCoMo') || strpos($ua, 'KDDI') ||
strpos($ua, 'UP.Browser') || strpos($ua, 'Vodafone') ||
strpos($ua, 'SoftBank')
){
header("Location: "携帯用サイトのURL");
exit;
}elseif(
strpos($ua,'iPhone') || strpos($ua,'iPod') ||
strpos($ua,'Android')
){
header('Location: "スマートフォン用サイトのURL");
exit;
}
?>
<所感 及び 注意点>
1)記述はくれぐれも間違えずに・・・
ネット上で、『ユーザーエージェントをつかったデバイス判断』の記述を探して、それをそのままコピペしたら、正しく動作しませんでした。
いろいろ原因を探したところ、ネットで見つけた記述の ' (クォーテーションマーク)が、全角のクォーテーションマークだったことが判明。
何も疑わず記述を使った私がいけないのだが、こういうことは気をつけよう。
ちなみに私の記述は使っていただいても大丈夫です。
2)header関数
header関数は、httpヘッダーに強制的に飛ぶ関数です。
なので、header関数は、最初に書かれている必要があり、header関数が実行された後は、exitする必要があります。
そのため、header関数を複数使う場合は、同じイフ構文内に収める必要があります。
<疑問点>
いわゆるアンドロイド系のデバイスを判断する場合、この'Android'だけでは不十分な気がします。
アンドロイドには、スマートフォンサイズ(3.5インチ、5インチ)、タブレット(約7インチ、約10インチ)などの多彩なサイズが存在します。
これらすべて、'Android'で飛ばしたくないな(笑)。
しかし、7インチのタブレットってなんか中途半端なサイズな気がする・・・。
でも意外と残ったりして(笑)。