我爱自学

 找回密码
 会员注册

QQ登录

只需一步,快速开始

Discuz判断手机端访问的说明教程

本篇文章,我爱自学小编为DZ站长分享,Discuz系统中如何判断手机端访问的方法和教程。
熟悉DZ的朋友都知道,Discuz系统是会根据浏览器客户端的不同,切换PC版或手机版。那么具体是怎么实现的了解吗?

实现手机端判断,依靠了一个函数,名为checkmobile(),位置在/source/function/function_core.php中,如下所示:

返回2是触屏版,返回3是WML版。再配合source/class/discuz/discuz_application.php中的代码,就实现了跳转。
  1. function checkmobile() {
  2. global $_G;
  3. $mobile = array();
  4. static $touchbrowser_list =array('iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'java', 'opera mobi', 'opera mini',
  5. 'ucweb', 'windows ce', 'symbian', 'series', 'webos', 'sony', 'blackberry', 'dopod', 'nokia', 'samsung',
  6. 'palmsource', 'xda', 'pieplus', 'meizu', 'midp', 'cldc', 'motorola', 'foma', 'docomo', 'up.browser',
  7. 'up.link', 'blazer', 'helio', 'hosin', 'huawei', 'novarra', 'coolpad', 'webos', 'techfaith', 'palmsource',
  8. 'alcatel', 'amoi', 'ktouch', 'nexian', 'ericsson', 'philips', 'sagem', 'wellcom', 'bunjalloo', 'maui', 'smartphone',
  9. 'iemobile', 'spice', 'bird', 'zte-', 'longcos', 'pantech', 'gionee', 'portalmmm', 'jig browser', 'hiptop',
  10. 'benq', 'haier', '^lct', '320x320', '240x320', '176x220', 'windows phone');
  11. static $wmlbrowser_list = array('cect', 'compal', 'ctl', 'lg', 'nec', 'tcl', 'alcatel', 'ericsson', 'bird', 'daxian', 'dbtel', 'eastcom',
  12. 'pantech', 'dopod', 'philips', 'haier', 'konka', 'kejian', 'lenovo', 'benq', 'mot', 'soutec', 'nokia', 'sagem', 'sgh',
  13. 'sed', 'capitel', 'panasonic', 'sonyericsson', 'sharp', 'amoi', 'panda', 'zte');

  14. static $pad_list = array('ipad');

  15. $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);

  16. if(dstrpos($useragent, $pad_list)) {
  17. return false;
  18. }
  19. if(($v = dstrpos($useragent, $touchbrowser_list, true))){
  20. $_G['mobile'] = $v;
  21. return '2';
  22. }
  23. if(($v = dstrpos($useragent, $wmlbrowser_list))) {
  24. $_G['mobile'] = $v;
  25. return '3'; //wml版
  26. }
  27. $brower = array('mozilla', 'chrome', 'safari', 'opera', 'm3gate', 'winwap', 'openwave', 'myop');
  28. if(dstrpos($useragent, $brower)) return false;

  29. $_G['mobile'] = 'unknown';
  30. if(isset($_G['mobiletpl'][$_GET['mobile']])) {
  31. return true;
  32. } else {
  33. return false;
  34. }
  35. }
复制代码


以上,及时discuz系统判断手机客户端的方法
点击阅读更多内容!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

手机版|小黑屋|我爱自学 ( 蜀ICP备19015358号-3 )

GMT+8, 2024-5-17 03:21 , Processed in 0.052328 second(s), 54 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

本站大部分教程是网站原创教程,一部分教程为我爱自学(http://www.5izixue.com)编辑收集整理。

如果您需要转载我爱自学网站教程,请注明“资料来源:我爱自学(5izixue)”字样并注明本站网址。

编辑收集整理的教程版权归原作者所有,本站只提供网友交流学习使用,请勿用于商业用途,如果该文章有任何侵犯您权益的地方,请联系我们(569705694@qq.com),我们将在第一时间进行处理!谢谢您的支持!

快速回复 返回顶部 返回列表