php或js判断网站访问者来自手机或者pc机

php或js判断网站访问者来自手机或者pc机

针对不同平台选择不同的网站版本,最终总结如下:

一、JS版代码:

<!--切换手机版网站--->
  <script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script>
  <script type="text/javascript">uaredirect("http://www.baidu.com/");</script>

    //Js方法二

<script type="text/javascript">
            <!-- //平台、设备和操作系统
            var system ={
                win : false,
                mac : false,
                xll : false
            };
            //检测平台
            var p = navigator.platform;
            system.win = p.indexOf("Win") == 0;
            system.mac = p.indexOf("Mac") == 0;
            system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
            //跳转语句,如果是手机访问就自动跳转到wap.baidu.com页面
            if(system.win||system.mac||system.xll){
                window.location.href="http://www.php186.com";
            }else{
                window.location.href="http://wap.php186.com";
            }
            -->
        </script>

二、PHP代码版:

<?php

//判断手机还是电脑访问网站方法一:
        function isMobile() {
            if (isset ($_SERVER[‘HTTP_X_WAP_PROFILE‘]))
            {
                echo "移动设备";
            }else{
                echo "PC机";
            }
        }

//判断手机还是电脑访问网站方法二:

if (isset ($_SERVER[‘HTTP_VIA‘]))
         {
          //找不到为flase,否则为true
          if(stristr($_SERVER[‘HTTP_VIA‘], "wap"))
          {
            echo "移动设备";
          }else{
            echo "PC机";
          }
         }

//判断手机还是电脑访问网站方法三:

if (isset ($_SERVER[‘HTTP_USER_AGENT‘]))
         {
          $clientkeywords = array (
           ‘nokia‘,
           ‘sony‘,
           ‘ericsson‘,
           ‘mot‘,
           ‘samsung‘,
           ‘htc‘,
           ‘sgh‘,
           ‘lg‘,
           ‘sharp‘,
           ‘sie-‘,
           ‘philips‘,
           ‘panasonic‘,
           ‘alcatel‘,
           ‘lenovo‘,
           ‘iphone‘,
           ‘ipod‘,
           ‘blackberry‘,
           ‘meizu‘,
           ‘android‘,
           ‘netfront‘,
           ‘symbian‘,
           ‘ucweb‘,
           ‘windowsce‘,
           ‘palm‘,
           ‘operamini‘,
           ‘operamobi‘,
           ‘openwave‘,
           ‘nexusone‘,
           ‘cldc‘,
           ‘midp‘,
           ‘wap‘,
           ‘mobile‘
          );
          // 从HTTP_USER_AGENT中查找手机浏览器的关键字
          if (preg_match("/(" . implode(‘|‘, $clientkeywords) . ")/i", strtolower($_SERVER[‘HTTP_USER_AGENT‘])))
          {
            echo "移动设备";
          }else{
            echo "PC机";
          }
         }
         
        ?>

  //方法四:综合以上

<?php

$mobile_browser = ‘0‘;

if(preg_match(‘/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i‘, strtolower($_SERVER[‘HTTP_USER_AGENT‘]))) {
$mobile_browser++;
}

if((strpos(strtolower($_SERVER[‘HTTP_ACCEPT‘]),‘application/vnd.wap.xhtml+xml‘)>0)
or ((isset($_SERVER[‘HTTP_X_WAP_PROFILE‘]) or
isset($_SERVER[‘HTTP_PROFILE‘])))) {
$mobile_browser++;
}

$mobile_ua = strtolower(substr($_SERVER[‘HTTP_USER_AGENT‘],0,4));
$mobile_agents = array(
‘w3c ‘,‘acs-‘,‘alav‘,‘alca‘,‘amoi‘,‘audi‘,‘avan‘,‘benq‘,‘bird‘,‘blac‘,
‘blaz‘,‘brew‘,‘cell‘,‘cldc‘,‘cmd-‘,‘dang‘,‘doco‘,‘eric‘,‘hipt‘,‘inno‘,
‘ipaq‘,‘java‘,‘jigs‘,‘kddi‘,‘keji‘,‘leno‘,‘lg-c‘,‘lg-d‘,‘lg-g‘,‘lge-‘,
‘maui‘,‘maxo‘,‘midp‘,‘mits‘,‘mmef‘,‘mobi‘,‘mot-‘,‘moto‘,‘mwbp‘,‘nec-‘,
‘newt‘,‘noki‘,‘oper‘,‘palm‘,‘pana‘,‘pant‘,‘phil‘,‘play‘,‘port‘,‘prox‘,
‘qwap‘,‘sage‘,‘sams‘,‘sany‘,‘sch-‘,‘sec-‘,‘send‘,‘seri‘,‘sgh-‘,‘shar‘,
‘sie-‘,‘siem‘,‘smal‘,‘smar‘,‘sony‘,‘sph-‘,‘symb‘,‘t-mo‘,‘teli‘,‘tim-‘,
‘tosh‘,‘tsm-‘,‘upg1‘,‘upsi‘,‘vk-v‘,‘voda‘,‘wap-‘,‘wapa‘,‘wapi‘,‘wapp‘,
‘wapr‘,‘webc‘,‘winw‘,‘winw‘,‘xda‘,‘xda-‘,‘Googlebot-Mobile‘);

if(in_array($mobile_ua,$mobile_agents)) {
$mobile_browser++;
}

if (strpos(strtolower($_SERVER[‘ALL_HTTP‘]),‘OperaMini‘)>0) {
$mobile_browser++;
}

if (strpos(strtolower($_SERVER[‘HTTP_USER_AGENT‘]),‘windows‘)>0) {
$mobile_browser=0;
}

if($mobile_browser>0) {
header("Location: mobile.php"); //手機版
}else {
header("Location: pc.php"); //電腦版
}

我的最终解决方案选择方法四,综合了前面三种:

pc版的主页:http://www.zhuqiaodou.com

index.php代码:

<?php

/**判断是否手机浏览器
     * @return boolean
     */
    function is_moble(){
        $mobile_browser = ‘0‘;
        
    
   if(preg_match(‘/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i‘,
strtolower($_SERVER[‘HTTP_USER_AGENT‘]))) {
            $mobile_browser++;
        }
    
   if((strpos(strtolower($_SERVER[‘HTTP_ACCEPT‘]),‘application/vnd.wap.xhtml+xml‘)>0)
or ((isset($_SERVER[‘HTTP_X_WAP_PROFILE‘]) or
isset($_SERVER[‘HTTP_PROFILE‘])))) {
            $mobile_browser++;
        }
        $mobile_ua = strtolower(substr($_SERVER[‘HTTP_USER_AGENT‘],0,4));
        $mobile_agents = array(
                ‘w3c ‘,‘acs-‘,‘alav‘,‘alca‘,‘amoi‘,‘audi‘,‘avan‘,‘benq‘,‘bird‘,‘blac‘,
                ‘blaz‘,‘brew‘,‘cell‘,‘cldc‘,‘cmd-‘,‘dang‘,‘doco‘,‘eric‘,‘hipt‘,‘inno‘,
                ‘ipaq‘,‘java‘,‘jigs‘,‘kddi‘,‘keji‘,‘leno‘,‘lg-c‘,‘lg-d‘,‘lg-g‘,‘lge-‘,
                ‘maui‘,‘maxo‘,‘midp‘,‘mits‘,‘mmef‘,‘mobi‘,‘mot-‘,‘moto‘,‘mwbp‘,‘nec-‘,
                ‘newt‘,‘noki‘,‘oper‘,‘palm‘,‘pana‘,‘pant‘,‘phil‘,‘play‘,‘port‘,‘prox‘,
                ‘qwap‘,‘sage‘,‘sams‘,‘sany‘,‘sch-‘,‘sec-‘,‘send‘,‘seri‘,‘sgh-‘,‘shar‘,
                ‘sie-‘,‘siem‘,‘smal‘,‘smar‘,‘sony‘,‘sph-‘,‘symb‘,‘t-mo‘,‘teli‘,‘tim-‘,
                ‘tosh‘,‘tsm-‘,‘upg1‘,‘upsi‘,‘vk-v‘,‘voda‘,‘wap-‘,‘wapa‘,‘wapi‘,‘wapp‘,
                ‘wapr‘,‘webc‘,‘winw‘,‘winw‘,‘xda‘,‘xda-‘,‘Googlebot-Mobile‘);
        
        if(in_array($mobile_ua,$mobile_agents)) {
            $mobile_browser++;
        }
        
        if (strpos(strtolower($_SERVER[‘ALL_HTTP‘]),‘OperaMini‘)>0) {
            $mobile_browser++;
        }
        
        if (strpos(strtolower($_SERVER[‘HTTP_USER_AGENT‘]),‘windows‘)>0) {
            $mobile_browser=0;
        }
        
        if($mobile_browser>0) {
            return true;
            //header("Location: mobile.php"); //手機版
        }else {
            return false;
            //header("Location: pc.php");  //電腦版
        }
    }

if(is_moble()){
        header("Location:http://www.zhuqiaodou.com"); //手機版
        exit();
    }        
?>

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>猪巧豆</title>
</head>
<body>

pc版主页。。。。

</body>
</html>

时间: 2024-10-22 16:14:21

php或js判断网站访问者来自手机或者pc机的相关文章

php或js判断网站访问者来自手机或者pc端源码

很多时候也可以通过逻辑程序来进行判断,如PHP.JS是常用的两种识别访问设备类型的常用方法. 原理都是采用识别访问客户端的HTTP_USER_AGENT,然后进行关键字匹配进行确定设备类型,对于伪造HTTP头的就区分不出来了. 区分设备类型然后要做的就是能够针对不同设置显示出易于阅读的网页,具体可以研究响应式布局技术. 本文主要介绍如何通过php或js来识别终端类型. <?php class IsMobile { public static function isMobile() { $user

js判断设备类型是移动设备还是PC设备

时下,许多web网站都有自己的手机建站,当用移动设备浏览网站的时候,我们希望能跳转到手机网址上,下面是一套并不是很完善的代码,高手可继续完善. 代码贴出: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js判断设备类型是移动设备还是PC设备</title> <script type="t

thinkphp 检测访问来源是来自手机还是PC

/** * 判断访问是不是来自手机 * @param * @author Julian */function isMobile(){ $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:''; function Check

判断客户端是否是手机或者PC

/// <summary> /// 判断客户端是否是手机或者PC /// </summary> /// <returns></returns> public static bool IsMobileDevice() { HttpContext context = HttpContext.Current; //C#自带方法判断是否为移动端 if (context.Request.Browser.IsMobileDevice) { return true; }

基于C/S模式的android手机与PC机通信系统的开发

原文链接: http://blog.csdn.net/nupt123456789/article/details/8213486 基于C/S模式的android手机与PC机通信系统的开发 作者:郑海波 单位:南京邮电大学 通信与信息工程学院 信号与信息处理 6班 学号:1012010638 邮箱:[email protected] -----------------------------------------------------------------------------------

python判断网站来自手机还是pc浏览器

#判断网站来自mobile还是pc def checkMobile(request):     """     demo :         @app.route('/m')         def is_from_mobile():             if checkMobile(request):                 return 'mobile'             else:                 return 'pc'     :pa

js判断手机端(Android手机还是iPhone手机)

现在使用手机上网的人越来越多,一些下载网站会通过判断不同系统手机来访问不同网页,比如iPhone和Android.下面我们就来介绍一下如何用javascript判断iPhone或Android手机访问 网上常用的代码    /** * [isMobile 判断平台] * @param test: 0:iPhone    1:Android */function ismobile(test){    var u = navigator.userAgent, app = navigator.appV

js判断浏览器类型(手机和电脑终端)

工作中经常会用到通过js来判断浏览器的功能!今天这里通过js来判断浏览器是来自移动设备还是pc设备! 代码如下: var browser={ versions:function(){ var u = window.navigator.userAgent; return { trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleW

判断当前终端是手机还是pc端并进行不同的页面跳转

判断当前设备(终端)是手机还是pc端并进行不同的页面跳转 DEMO 1 <script type="text/javascript"> function browserRedirect() { var sUserAgent= navigator.userAgent.toLowerCase(); var bIsIpad= sUserAgent.match(/ipad/i) == "ipad"; var bIsIphoneOs= sUserAgent.mat