ホームページを閲覧する端末(スマートフォン, タブレット,携帯電話,PC)がいろいろと出てきているため、振り分けがどうしても必要になってきます。
振り分けの方法は、javascript や htaccess でもできますが、ここでは PHP の方法を記述します。
どの方法も基本的には、ユーザーエージェントを取得して、以下のような判定を行います。
- 「Android」と「Mobile」の記述があれば「スマホ」
- 「iPhone」の記述があれば「スマホ」
- 「ipad」の記述があれば「スマホ」
- 「Android」の記述があり「Mobile」の記述がなければ「タブレット」
- 「ipad」の記述があれば「タブレット」
- 「DoCoMo」の記述があれば「携帯電話」
- 「KDDI」の記述があれば「携帯電話」
- 「SoftBank」か「Vodafone」か「J-PHONE」の記述があれば「携帯電話」
- 上記のいずれでもない場合は「パソコン」
PHPで書くと以下の通り。
function uaFuriwake(){ // ユーザーエージェント取得 $userAgent = $_SERVER['HTTP_USER_AGENT']; // 振り分け if( isSmartphone( $userAgent ) ) $value = 'スマートフォン'; else if( isTablet( $userAgent ) ) $value = 'タブレット端末'; else if( isCellularphone( $userAgent ) ) $value = '携帯電話'; else $value = 'パソコン'; return( $value ); } function isSmartphone( $ua ){ // Android,iPhone,iPod if( ( ( strpos( $ua, 'Android' ) != FALSE ) && ( strpos( $ua, 'Mobile' ) != FALSE ) ) || ( strpos( $ua, 'iphone' ) != FALSE ) || ( strpos( $ua, 'ipod' ) != FALSE ) ) return( TRUE ); else return( FALSE ); } function isTablet( $ua ){ // Android, iPad if( ( strpos( $ua, 'Android' ) != FALSE ) || ( strpos( $ua, 'ipad' ) != FALSE ) ) return( TRUE ); else return( FALSE ); } function isCellularphone( $ua ){ // NTT docomo, au KDDI, SoftBank if( ( strpos( $ua, 'DoCoMo' ) != FALSE ) || ( strpos( $ua, 'KDDI' ) != FALSE ) || ( strpos( $ua, 'SoftBank' ) != FALSE ) || ( strpos( $ua, 'Vodafone' ) != FALSE ) || ( strpos( $ua, 'J-PHONE' ) != FALSE ) ) return( TRUE ); else return( FALSE ); }