PHP 判断访问来自手机端还是PC端

function: 如果返回mobile则代表是移动端,如果返回pc则是电脑端。 

/**

 * //判断是否手机设备

 * @return boolean

 */

function is_mobile_request()

{


  $_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : '';

  $mobile_browser = '0';

  if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT'])))

    $mobile_browser++;

  if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false))

    $mobile_browser++;

  if(isset($_SERVER['HTTP_X_WAP_PROFILE']))

    $mobile_browser++;

  if(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-'

  );

  if(in_array($mobile_ua, $mobile_agents))

    $mobile_browser++;

  if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false)

    $mobile_browser++;

  // Pre-final check to reset everything if the user is on Windows

  if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)

    $mobile_browser=0;

  // But WP7 is also Windows, with a slightly different characteristic

  if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false)

    $mobile_browser++;



  if($mobile_browser>0)

    return "mobile";

  else

    return "pc";

}

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要限制电脑PC访问web页面,只能手机才能访问,可以通过以下几种方法实现。 第一种方法是使用用户代理(User Agent)来识别设备类型。每个浏览器在请求服务器时都会发送一个User Agent头信息,其中包含了浏览器的信息。通过检查User Agent头中的关键词,如"Windows"、"Mac"等,可以确定请求是否来自PC手机。通过服务器的编程语言,比如PHP,可以根据User Agent头信息进行判断并返回不同的内容或重定向。 第二种方法是通过检查请求的来源IP地址来区分设备类型。可以编写服务器代码,判断请求的来源IP地址是否为PC手机的IP地址段。如果是从PC发起的请求,则返回访问拒绝的响应页面;如果是手机,则正常返回页面内容。 第三种方法是通过验证码来限制PC访问。在网站的登录页面或访问页面中加入验证码功能,当用户从PC访问时,需要输入验证码才能继续访问。而在手机访问时,可以免除验证码的验证。这样便能限制PC访问,只允许手机访问。 以上三种方法可以单独使用,也可以结合使用,根据需求和实际情况选择适合的方法。需要注意的是,这些方法只是对请求进行识别和拦截,无法完全阻止PC访问。如果存在黑客或高级用户,他们可能会绕过这些限制。因此,确保网站的安全性还需要进一步加强其他安全措施,如身份验证和访问权限管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小目标青年

对你有帮助的话,谢谢你的打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值