`
scutephp
  • 浏览: 15419 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

ThinkPHP中判断是手机端还是电脑端访问的方法

阅读更多
PHP判断是手机端还是电脑端访问的方法

1.在PublicController控制器中写好判断手机端方法。

<?php
namespace Home\Controller;
use Think\Controller;
class PublicController extends Controller {
   
    //判断是否是手机端还是电脑端
    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;
    }
}
2.在php控制器 IndexController.class.php中继承该方法:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends PublicController {

    function __construct(){   //构造方法  
        parent::__construct();
    }
3.在方法中调用并实例化:

    /*用户首页*/
    public function Personal(){
        $mobile = parent::isMobile(); //实例化该方法
        if($mobile=="true"){
            $this->display(Personal);
        }else{
            $this->display(Wap_Personal);
        }
      
    }
原文链接:http://www.kubiji.cn/topic-id3613.html
分享到:
评论

相关推荐

    PHP实现判断访问端是手机还是电脑

    PHP实现判断访问端是手机还是电脑 一、 开发环境 ... 2、文本编辑器:Sublime 3。 二、主要技术 本案例主要使用PHP 7中的HTTP头信息via、浏览器代理标示符来实现判断访问端是手机还是电脑的功能。

    thinkphp判断访客为手机端或PC端的方法

    本文将详细介绍如何在ThinkPHP中判断用户是使用手机还是PC进行访问。 首先,我们要获取用户的浏览器发送到服务器的`HTTP_USER_AGENT`头信息。这个头信息包含了用户使用的浏览器类型、版本以及其他设备信息。在...

    thinkphp资讯网站源码完美运营版+自适应手机端+封装APP

    在ThinkPHP中,模型负责处理数据,视图负责展示,控制器协调两者,实现数据与界面的交互。 3. **响应式设计**:为了让网站在不同设备上都能正常显示,采用了响应式布局。这种设计允许网站根据用户的设备屏幕大小和...

    layui+thinkphp前后端分离.rar

    具体到开发流程,首先,开发者需要在ThinkPHP中定义API接口,这些接口将用于前端向后端发送请求并接收响应。接着,使用Layui创建相应的前端页面,编写Ajax代码来调用这些接口。在接收到后端返回的数据后,Layui可以...

    thinkPHP 支付宝手机端接口

    thinkPHP 支付宝 手机端的 接口对接 是经过测试 成功可以支付

    thinkphp+jwt实现前后端分离

    总的来说,这个项目为开发者提供了一个实践Thinkphp6和JWT结合的起点,有助于理解和掌握前后端分离的实现方法,同时也展示了现代Web开发中的一些最佳实践。通过学习和研究这个项目,开发者可以提升自己的技能,为...

    20200504最新基于ThinkPHP5.0框架开发的自适应WAP手机端响应式界面博客系统PHP源码.zip

    ,前端界面采用BootStrap框架设计,使得博客系统界面能自适应区分PC端和WAP手机端界面,针对不同尺寸设备响应不同的界面布局,后台系统基于ThinkPHP框架开发,程序运行速度更快,适合正在学习ThinkPHP框架拿来学习...

    ThinkPHP框架开发的精品网络公司整站源码无减删+微信端接口+WAP手机端-同步WEB.txt

    ThinkPHP框架开发的精品网络公司整站源码无减删+微信端接口+WAP手机端-同步WEB.txt

    Thinkphp明日策略配资网站源码完美运营版+自适应手机端+封装APP.zip

    同时,源码还强调了“自适应手机端”,意味着其采用响应式设计,可以自动适配不同设备的屏幕尺寸,确保用户在移动设备上也能流畅使用。 “封装APP”意味着源码还包含了移动端的应用程序开发,使得用户可以通过手机...

    【源码编号 : MF00384】Thinkphp+Vue2.0前后端分离框架通用后台源码

    一套基于Vue全家桶(Vue2.x + Vue-router2.x + Vuex)+ Thinkphp的前后端分离框架。 脚手架构建也可以通过vue官方的vue-cli脚手架工具构建 后台主要功能有: * 登录、退出登录* 修改密码、记住密码* 菜单...

    Thinkphp仿众图网图片素材下载站源码 资源下载站源码 自适应手机端

    "Thinkphp仿众图网图片素材下载站源码"是一款针对此类需求设计的开源项目,它借鉴了知名网站众图网的界面设计和功能布局,同时结合了Thinkphp框架的强大功能,实现了资源下载站的自适应手机端展示。本文将深入探讨这...

    php thinkphp做的手机电脑商城

    在ThinkPHP中,可以利用前端框架(如Bootstrap、Vue.js等)实现响应式布局,或者通过多套模板来分别服务于手机和电脑用户。 6. 数据库设计:在开发过程中,需要设计合理的数据库表结构,例如用户表、商品表、订单表...

    thinkphp中文分词

    在实际使用中,开发者可以通过实例化这个类并调用其方法,轻松地在ThinkPHP应用中集成中文分词功能。常见的分词算法有HMM( Hidden Markov Model)、BMES(Begin-Middle-End-Single)等,此文件中可能采用了其中的一...

    Thinkphp使用mongodb数据库实现多条件查询方法

    在Thinkphp中使用MongoDB进行多条件查询时,需要对框架提供的驱动进行一定的修改以适应MongoDB的查询方式。 在Thinkphp中实现多条件查询时,可以使用框架提供的查询构建器(Query Builder),但是当涉及到MongoDB的...

    Thinkphp开源内核 资质证书网站源码 证书在线查询系统源码 自适应手机端.zip

    新鲜打包的证书在线查询系统,资质证书显示网站源码,证书查询自适应手机端,采用的是thinkphp开源内核,无版权可商用,非常不错的,可开发度很高,

    ThinkPHP中文转拼音字母简单调用

    "ThinkPHP中文转拼音字母简单调用"这个主题,正是关于如何在ThinkPHP中轻松实现这一功能。 首先,我们要理解的是,中文转拼音主要是通过特定的算法和库来完成的,这些库能够将汉字映射到对应的汉语拼音。在这个案例...

    thinkphp_thinkphp_thinkphp5_

    在ThinkPHP5中,我们可以通过`$this-&gt;view-&gt;assign()`方法向模板传递数据,这些数据在模板中可以使用双大括号`{{ }}`进行输出。例如,`{{ $title }}`将输出控制器中赋值的变量 `$title`。此外,ThinkPHP5还支持视图...

Global site tag (gtag.js) - Google Analytics