2011-06-29 22 views
34

可能性の重複を検出:
Simplest way to detect a mobile deviceは、携帯電話のブラウザに

私がサイトを持っているし、私が使用しているブラウザを検出し、それらをリダイレクトします。 私はPHPインデックスを持っており、コードはPHPでなければなりません。 私は多くのサイトを見つけましたが、動作しないか、多くのモバイルブラウザを検出しません。 多くのモバイルブラウザを検出できる優れたコードやチュートリアルがありますか?

<?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'; 
} 
?> 
+0

これが必要以上に多いのかどうかわかりませんが、見たいと思うかもしれません:http://wurfl.sourceforge.net/nphp/ – dimi

+0

参照:http://mobiledetect.net/最もシンプルなようですway ... – theINtoy

+0

これとは対照的に、生地はこれを含めるのが簡単で実際に動作します!!私はあなたに@iamandrusに投票して回答します。 – user613326

答えて

55

は私のユーザー・エージェント・コードを持っています自社のソリューションを実装するよりも、経験を積んだ他の人たちが行った作業を再利用することができます。

+0

ありがとう、ありがとうございます。これは本当に私にとって助けになります。 – Gromdroid

+0

全く問題ありません! – iamandrus

+0

優れた実装。名誉! – vlex

4

、我々はWURFL使用

+1

@ Gromdroidが望んでいることを達成するためにPHPでWURFLを使用する例を表示したりリンクしたりすると便利です。 – cdmckay

28

PHPでthis script to detect a mobile browserを書きました。

このコードでは、preg_match()によってuser-agent文字列に基づいてユーザーを検出します。それは現在のすべてのモバイルデバイスで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"]); 
} 

// 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/"); 
:あなたのモバイルサイトにユーザーをリダイレクトするには

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

、私はこれを行うだろう

ご不明な点がありましたらお知らせください。

+0

@AndrewBarber:[ここ](http://meta.stackexchange.com/questions/94022)に概説されているすべての要件を満たしているかのようです。 –

+0

@robert ok。私のことは答えがかなり重複していることでしたが、私は理解しています:) –

+0

私は問題が何であるか理解していません。 PHPでリダイレクトする方法を尋ねる複数の質問があるので、私は答えました。あなたは私が代わりにすることを提案するだろうか? –