• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    利用PHP判断是手机移动端还是PC端访问的函数示例

    前言

    最近在开发项目的时候,分别开发了PC端和手机端,需要实现,用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC端网站,于是有了下面这个判断函数:

    示例代码:

    /**
     * 移动端判断
     */
    function isMobile()
    { 
     // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
     if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
     {
     return true;
     } 
     // 如果via信息含有wap则一定是移动设备
     if (isset ($_SERVER['HTTP_VIA']))
     { 
     // 找不到为flase,否则为true
     return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
     } 
     // 脑残法,判断手机发送的客户端标志,兼容性有待提高
     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'])))
     {
      return true;
     } 
     } 
     // 协议法,因为有可能不准确,放到最后判断
     if (isset ($_SERVER['HTTP_ACCEPT']))
     { 
     // 如果只支持wml并且不支持html那一定是移动设备
     // 如果支持wml和html但是wml在html之前则是移动设备
     if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false)  (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml')  strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
     {
      return true;
     } 
     } 
     return false;
    } 

    PHP isset 函数作用

    isset函数是检测变量是否设置。

    格式:bool isset ( mixed var [, mixed var [, ...]] )

    返回值:

    警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。

    ?php
    $a = array ('test' => 1, 'hello' => NULL);
    var_dump( isset ($a['test') ); // TRUE
    var_dump( isset ($a['foo') ); // FALSE
    var_dump( isset ($a['hello') ); // FALSE
    // 'hello' 等于 NULL,所以被认为是未赋值的。
    // 如果想检测 NULL 键值,可以试试下边的方法。
    var_dump( array_key_exists('hello', $a) ); // TRUE
    ?>

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
    • thinkphp判断访客为手机端或PC端的方法
    • 在WordPress中使用PHP脚本来判断访客来自什么国家
    • php 判断访客是否为搜索引擎蜘蛛的函数代码
    • PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
    • php函数实现判断是否移动端访问
    • php/asp/asp.net中判断百度移动和PC蜘蛛的实现代码
    • PHP判断是否是微信打开还是浏览器打开的方法
    • 通过JS和PHP两种方法判断用户请求时使用的浏览器类型
    • 使用PHP和JavaScript判断请求是否来自微信内浏览器
    • PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
    上一篇:THINKPHP3.2使用soap连接webservice的解决方法
    下一篇:PHP中OpenSSL加密问题整理
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    利用PHP判断是手机移动端还是PC端访问的函数示例 利用,PHP,判断,是,手机,移动,