今やフィーチャーフォン用のサイトはほとんど見かけませんが、昔は様々なデバイスに対応するために、スマートフォンやフィーチャーフォン、さらにはキャリアやブラウザごとに内容を変える必要がありました。
今回は、PHPを使ってこれらのデバイスを判別する方法についてご紹介します。
ちなみに、この方法はJavaScriptや.htaccessを使っても実現可能です。
ディスプレイ広告
PHPでデバイスを判別するコード
<?php
$docomo = "/docomo/"; //ドコモ
$au = "/au/"; //au
$softbank = "/sb/"; //ソフトバンク
$msie = "/index.html"; //IE
$Netscape = "/index.html"; //Netscape
$opera = "/index.html"; //Opera
$firefox = "/index.html"; //Firefox
$pc = "/index.html"; //上記以外のブラウザ
$mobile = "/sp/"; //iPhone
if(isset($_SERVER['HTTP_USER_AGENT'])){
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if(eregi("DoCoMo",$user_agent)){header("Location: $docomo");}
elseif(eregi("UP\.Browser",$user_agent)){header("Location: $au");}
elseif(eregi("J-PHONE",$user_agent)){header("Location: $softbank");}
elseif(eregi("Vodafone",$user_agent)){header("Location: $softbank");}
elseif(eregi("SoftBank",$user_agent)){header("Location: $softbank");}
elseif(eregi("J-EMULATOR",$user_agent)){header("Location: $softbank");}
elseif(eregi("MSIE",$user_agent)){header("Location: $msie");}
elseif(eregi("Netscape",$user_agent)){header("Location: $netscape");}
elseif(eregi("Opera",$user_agent)){header("Location: $opera");}
elseif(eregi("Firefox",$user_agent)){header("Location: $firefox");}
elseif(eregi("iPhone",$user_agent)){header("Location: $mobile");}
else{header("Location: $pc");}
}else{
header("Location: $pc");
}
?>
上記、各headerに記述するとページのスマホ、フィーチャーフォン、キャリア、ブラウザを種類別に判別が行えます。
このコードを使うことで、アクセスしてきたユーザーのデバイスがどのようなものかを判別し、適切なページにリダイレクトすることができます。
まとめ
PHPを使ったデバイス判別は、古い手法ではありますが、いまだに有効な場面があります。最近では、レスポンシブデザインによって、デバイスによる表示の違いをあまり意識しなくても良くなってきましたが、特定のデバイスに最適化されたページを提供したい場合などには、このような方法が役立ちます。
※流用される場合は自己責任でお願いします。
ディスプレイ広告
ディスプレイ広告