web-dev-qa-db-ja.com

モバイルブラウザを検出する

可能性のある複製:
モバイルデバイスを検出する最も簡単な方法

サイトがあり、使用されているブラウザを検出してリダイレクトしたい。 phpインデックスがあり、コードはphpである必要があります。多くのサイトを見つけましたが、機能しないか、多くのモバイルブラウザーを検出しません。多くのモバイルブラウザを検出できる優れたコードまたはチュートリアルをご存知ですか?

34
Gromdroid

ユーザーエージェントコードを持っている:

<?php

/* USER-AGENTS
================================================== */
function check_user_agent ( $type = NULL ) {
        $user_agent = strtolower ( $_SERVER['HTTP_USER_AGENT'] );
        if ( $type == 'bot' ) {
                // matches popular bots
                if ( preg_match ( "/googlebot|adsbot|yahooseeker|yahoobot|msnbot|watchmouse|pingdom\.com|feedfetcher-google/", $user_agent ) ) {
                        return true;
                        // watchmouse|pingdom\.com are "uptime services"
                }
        } else if ( $type == 'browser' ) {
                // matches core browser types
                if ( preg_match ( "/mozilla\/|opera\//", $user_agent ) ) {
                        return true;
                }
        } else if ( $type == 'mobile' ) {
                // matches popular mobile devices that have small screens and/or touch inputs
                // mobile devices have regional trends; some of these will have varying popularity in Europe, Asia, and America
                // detailed demographics are unknown, and South America, the Pacific Islands, and Africa trends might not be represented, here
                if ( preg_match ( "/phone|iphone|iTouch|iPod|symbian|Android|htc_|htc-|palmos|blackberry|opera mini|iemobile|windows ce|nokia|fennec|hiptop|Kindle|mot |mot-|webos\/|samsung|sonyericsson|^sie-|nintendo/", $user_agent ) ) {
                        // these are the most common
                        return true;
                } else if ( preg_match ( "/mobile|pda;|avantgo|eudoraweb|minimo|netfront|brew|teleca|lg;|lge |wap;| wap /", $user_agent ) ) {
                        // these are less common, and might not be worth checking
                        return true;
                }
        }
        return false;
}

?>

使い方:

<?php
$ismobile = check_user_agent('mobile');
if($ismobile) {
return 'yes';
} else {
return 'no';
}
?>
55
iamandrus

モバイルブラウザを検出するためのこのスクリプト をPHPで作成しました。

このコードは、preg_match()ingによってユーザーエージェント文字列に基づいてユーザーを検出します。現在のすべてのモバイルデバイスで100%の精度があり、現在、より多くのモバイルデバイスがサポートされるように更新しています。コードはisMobileと呼ばれ、次のとおりです。

function isMobile() {
    return preg_match("/(Android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|Palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}

次のように使用できます。

// Use the function
if(isMobile())
    // Do something for only mobile users
else
    // Do something for only desktop users

ユーザーをモバイルサイトにリダイレクトするには、次のようにします。

// Create the function, so you can use it
function isMobile() {
    return preg_match("/(Android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|Palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}
// If the user is on a mobile device, redirect them
if(isMobile())
    header("Location: http://m.yoursite.com/");

質問や幸運があれば教えてください!

28
Justin DoCanto

仕事では、 [〜#〜] wurfl [〜#〜] を使用します-数百万のさまざまなブラウザがあり、経験のある他の人が行った仕事を再利用した方が良いですその点で、独自のソリューションを実装するよりも。

4
cweiske