0

ユーザーがスマートフォン (特に iPhone と Android) から私の Web サイトにアクセスしたかどうかを知るにはどうすればよいですか?

ユーザーを専用の Web サイトにリダイレクトしたいので、PHP検出とhtaccess検出の両方が適切です。

より具体的には、ユーザーはAdWordsキャンペーンから来ます。AdWords は、役立つ URL に何かを追加しますか?

4

3 に答える 3

3

ユーザー エージェント文字列を次の場所で確認しました。

http://www.useragentstring.com/

正直なところ、最も簡単な方法は、 $_SERVER['HTTP_USER_AGENT'] に「Mobile」という単語が含まれているかどうかを確認することです。

確かに、これはあらゆるモバイル デバイス、スマートフォン、またはタブレットを検出するため、あなたの場合には完璧ではないかもしれませんが、Web 開発者としての私にとって最大の違いのようです。つまり、私のユーザーが最新の「モバイル」ブラウザーを使用していることです。 、またはPODB(プレーンな古いデスクトップブラウザ)上にありますか?:)

于 2013-07-31T15:59:19.873 に答える
3

私はこれをプロジェクトに使用しています。このコードは、約 1 年前に stackoverflow.com で見つけたと思います。if ステートメントを変更して、特定のデバイスのみをリダイレクトするか、それぞれの特定のサイトにリダイレクトすることができます。これは包括的なもので、モバイル デバイスをhttp://www.example.com/mobileページにリダイレクトします。すべてのページのヘッダーで呼び出される関数に配置しました(すべてのページに同じheader.phpが含まれているため機能します)。

$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
$ipad = strpos($_SERVER['HTTP_USER_AGENT'],"iPad");

if($iphone || $android || $palmpre || $ipod || $berry || $ipad == true) 
{ 
    header('Location: mobile');
}

AdWords を使用したことはありませんが、URL への GET 変数の追加について詳しく説明しているページを見つけました: Using AdWords Dynamic Parameters in Links

于 2012-11-19T09:15:42.400 に答える
1

この情報はすでに $_SERVER スーパーグローバルにあります。あなたがしなければならないのは、Iphone/Ipdad etc内の出現を見つけることだけです$_SERVER['HTTP_USER_AGENT']

それを行う関数を定義してから、次のように特定のページにリダイレクトします (これは手続き型のアプローチです)。

<?php

$mobile = array('Iphone', 'Androind'); //etc add more


//We won't use global keyword
//We would pass an array as arg instead
function isMobile(array $mobile){
  foreach($mobile as $agent){

     if ( strpos($_SERVER['HTTP_USER_AGENT'], $agent) ){
         //mobile detected
         //or return its name, do it the way you like
         return true;
     }
  }
}


//Now simply check then do redirect, like this
if ( isMobile($mobile) ){

   header('Location: /some-mobile-page.php')

} else {
  header('Location: /regular-page.php');
}
于 2012-11-19T09:19:28.713 に答える