phpでスマートフォンの判別(判定)

スマートフォン用のサイトを作った場合、PCサイトに行ったら自動的にスマフォ用のサイトに飛ばしたい。または、スマフォで携帯サイトにアクセスしたらPCサイトに飛ばしてやりたいことがある。

その場合、スマフォ判別用のコードを書く必要があります。
phpでの判別法(ページがphpファイルで作られている必要があります。拡張子だけ変えてもOK)になります。

■まずはスマートフォンの判定のための関数をphpファイル内上部に記述しておきます。
※もちろん外部に置いてincludeしてもOK

<?php
function is_mobile () {
$useragents = array(
'iPhone', // Apple iPhone
'iPod', // Apple iPod touch
'Android', // 1.5+ Android
'dream', // Pre 1.5 Android
'CUPCAKE', // 1.5+ Android
'blackberry9500', // Storm
'blackberry9530', // Storm
'blackberry9520', // Storm v2
'blackberry9550', // Storm v2
'blackberry9800', // Torch
'webOS', // Palm Pre Experimental
'incognito', // Other iPhone browser
'webmate' // Other iPhone browser
);
$pattern = '/'.implode('|', $useragents).'/i';
return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}
?>

 ■スマフォのみに適用する場合の例
スマートフォンならスマフォ専用サイトへリダイレクトさせる場合の記述例です。
 header(“Location: http://www.kens-web.com/”);
この部分のURLを飛ばしたいURLに変更するだけです。
header関数はHTML出力の前に必ず記述しなければいけません。
なので、DOCTYPE宣言より上に記述する必要があります。
(特に理由がなければソースの一番上に書いてください)

<?php

//スマートフォンならPCサイトへリダイレクト
function is_mobile () {
$useragents = array(
'iPhone', // Apple iPhone
'iPod', // Apple iPod touch
'Android', // 1.5+ Android
'dream', // Pre 1.5 Android
'CUPCAKE', // 1.5+ Android
'blackberry9500', // Storm
'blackberry9530', // Storm
'blackberry9520', // Storm v2
'blackberry9550', // Storm v2
'blackberry9800', // Torch
'webOS', // Palm Pre Experimental
'incognito', // Other iPhone browser
'webmate' // Other iPhone browser
);
$pattern = '/'.implode('|', $useragents).'/i';
return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']);
}
//判別実行
if (is_mobile()) {
 header("Location: http://www.kens-web.com/");
 exit;
}
?>

また、スマフォのみに適用させたいものを以下のように記述すれば、スマフォのみに適用させることも可能。

<?php if (is_mobile()) { ?>
<link rel="stylesheet" type="text/css" href="/css/mobile.css" />
<?php } ?>

この場合、スタイルシートはスマフォのみに適用されます。

iPhoneでは検証済みですが、他の機種では試していません。。。が、
そもそもWordpressのプラグインに判別のための記述を使ってるので、おそらくちゃんと働くはず!です。。。

Javascript版はこちらの記事をご覧ください。

 

記事の内容が近いもの:

  1. javascript使用したスマートフォンの判定(判別)
  2. スマフォサイトをPCで表示確認するためのブラウザ
  3. PHPよく使う関数メモ書き(自分用)
  4. iPhone良いとこ悪いとこ(あくまで主観)そしてSDで電話帳移行
  5. Web管理者が知っておくべきスマートフォンブラウザの問題点
  6. PHPでフルパス(絶対パス)を取得する。
  7. jQueryMobileで作るスマートフォンサイトのHelloWorld
  8. スマートフォン(スマホ)Androidでのmp4再生のための作業録

カテゴリー: PHP&MySQLなど, スマートフォン   パーマリンク