首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ThinkPHP中判断是手机端还是电脑端访问的方法

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

作者头像
96php.cn
发布于 2018-04-28 07:19:45
发布于 2018-04-28 07:19:45
2.6K00
代码可运行
举报
文章被收录于专栏:www.96php.cnwww.96php.cn
运行总次数:0
代码可运行

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

  1. 在PublicController控制器中写好判断手机端方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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中继承该方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends PublicController {

    function __construct(){   //构造方法   
        parent::__construct();
    }

3.在方法中调用并实例化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*用户首页*/
    public function Personal(){
        $mobile = parent::isMobile(); //实例化该方法 
        if($mobile=="true"){
            $this->display(Personal);
        }else{
            $this->display(Wap_Personal);
        }
       
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年1月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
php判断访问者是否手机客户端实例
上面的方法也存在一些小问题,这里我根据自己的经验来告诉大我们可以使用屏幕宽度来实现再加机器类型了,因为有时HTTP_USER_AGENT信息在我们上面并未定义过了,不过上面实现几乎兼容了主流手机了。 我们还可以使用js
用户8099761
2023/05/10
2.1K0
pc端和m端共用同一个域名时,php如何识别?
pc mobile <?php $clientKeyWords = ['mobile', 'nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc',
友儿
2022/09/11
4300
php网站判断用户是否是手机访问的方法
有些时候,我们需要判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面。这里就介绍一下,如何判断用户是否用手机访问。
全栈程序员站长
2022/07/07
2.5K0
php中如何判断用户是移动端还是pc端
💬个人网站:【芒果个人日志】​​​​​​ 💬原文地址:php中如何判断用户是PC端还是移动端 - 芒果个人日志 (wyz-math.cn) 💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。 💅文章概要:在移动端快速发展的今天,手机的日
THUNDER王
2023/02/23
1.7K0
php中如何判断用户是移动端还是pc端
PHP判断是否为手机移动终端的函数代码
PHP判断是否是移动设备的函数 比单一的UA判断要好的多! 可以直接拿来用用! function is_mobile_request(){ $_SERVER['ALL_
用户1456630
2018/05/25
1.6K0
PHP判断用户是否是移动端访问的办法
有的网站需要判断用户是否使用移动端访问,如果是则跳转wap网页,否则不跳转,实现判断的方法也很简单,一个函数就搞定了。
Z4
2020/04/21
2.8K0
PHP丨如何判断访客PC及PE端?(图片API配合使用)
手机双端比如自适应网站的站长来说还是比较有用的,使用它不但单纯的可以完美解决如何用PHP判断用户通过电脑端还是手机端访问网站,还可以实现一些实际的网站问题,比如说通过判断用户通过电脑还是手机来引导用户的访问页面,或者引导用户去显示一些不同的信息等。
V站CEO-西顾
2018/06/08
9940
PHP丨如何判断访客PC及PE端?(图片API配合使用)
PHP简单判断手机设备的方法
PHP 简单判断手机设备的方法,涉及 php 基于服务器预定义变量进行判断操作的相关技巧,现在移动互联网越来越发到,很多的网站都普及了手机端浏览,为了更好的让网页在手机端显示,我们都选择了使用 CSS 媒体查询制作响应式模版,但这也有弊端,例如某些网站的结构是 CMS 类型的,太多的内容要显示,而使用 CSS 媒体查询设计响应式,只会隐藏但还是加载了,为了让手机端更快速的显示出内容,我们可以使用这个 PHP 判断手机设备代码,使用这个代码可以很方便的显示或不显示自定义的内容。 这是 PHP 判断手机设备函数
沈唁
2018/05/24
1.4K0
WordPress程序如何判断手机端和pc端?
通过程序来识别访问网页的设备是PC或者移动以便于我们自适应的显示不用的样式,但是一般php有判断的方法,js也有,css也可以判断,今天就分享一个WordPress程序自带的内置函数:wp_is_mobile(),大概的意思就是判断用户是否采用移动设备访问网站,返回的结果是一个布尔函数,返回值为true或false。
wordpress建站吧
2019/10/15
2.8K0
刷新就改变背景图片是怎么做的?
在写API界面的时候我突然有一个想法,那就是把所有的API都可以让各大站长自己搭建来使用,
用户8099761
2023/05/11
4100
Nginx根据Pc端和手机端访问不同页面
参考(http://blog.51cto.com/yanconggod/2047463)
石臻臻的杂货铺[同名公众号]
2021/07/14
1.2K0
Z-BlogPHP 主题制作技巧,随机获得文章中的图片
调用其它数据参考文章标签,文章标签。 注意:此处需要使用foreach循环中as后面变量名,如案列中使用的 $related ,如需调用标题则用 {$related.Title} ,而并非是 {$article.Title}。
德顺
2019/11/12
5560
PHP自动判断客户端并进行301跳转
现在很多老版的网站都会有m站,在我们使用移动端访问时会自动跳转到m站,那么如何判断客户端设备是电脑还是手机或者是平板呢,有的使用的是js判断方式,以前我们使用的方式也是这样的,但是这样是损失资源的,因为js判断是在页面上进行的操作,这样就会有数据的请求。然后,获取完数据,判断设备类型,进行跳转,再次获取数据,渲染页面。浪费了很多资源,也加长了用户的等待时间。
申霖
2019/12/27
3.2K0
PHP自动判断客户端并进行301跳转
超实用PHP判断页面访问是移动端还是PC设备?
最近想要找一段代码判断移动pc,以便隐藏显示不同内容,结果找网上的好多都是同一个版本比较复杂不太好用,其实WordPress本身自带了个亿函数判断移动还是pc设备的,wp_is_mobile();这个是可以直接使用的;
wordpress建站吧
2019/12/19
2K0
zblog怎么实现PC端和移动端显示不同网站(不完美兼容)
还是那句话,目前没有完美的兼容方法,无论是不同主题插件还是多主题插件,都不能实现无缝切换,所以建议不要折腾,如果非得折腾,新建一个测试网站慢慢折腾,简单说下为什么不能完美兼容(无论什么插件),就说一点,侧栏,如果你使用的PC端的主题有一个侧栏,这个侧栏在PC端有样式列表,但是轻奢主题没有这个样式表就会出现错乱的现象,这不是BUG仅仅是因为没有样式表,还缺少插件接口等问题,所以建议你们不要去想着怎么兼容,把精力放在网站内容上吧。
李洋博客
2021/06/15
9130
Django 判断访问来源是PC端还是手机端
pc_or_mobile.py # 判断访问来源是pc端还是手机端 import re def judge_pc_or_mobile(ua): """ :param ua: 访问来源头信息中的User-Agent字段内容 :return: """ factor = ua is_mobile = False _long_matches = r'googlebot-mobile|android|avantgo|blackberry|blazer|e
菲宇
2022/04/13
1.3K0
一个php文件实现反代jsdelivr,并缓存文件到本地服务器
之前写了shell脚本,可以手动下载jsdelivr的单文件,已经满足的我需求了(在这里 ),但评论区表示没有一步到位。 那就用最好的语言之php配合伪静态再搞一个吧!话不多说,直接上代码! [im
TDP-苏苏
2022/05/16
2.6K1
一个php文件实现反代jsdelivr,并缓存文件到本地服务器
Nginx区分PC或手机访问不同网站
近几年来,随着手机和pad的普及,越来越多的用户选择使用移动客户端访问网站,而为了获取更好的用户体验,就需要针对不同的设备显示出最合适的匹配,这样就是近年来流行的“响应式web设计”。 响应式web设计是一种纯前端技术js、css等实现的针对不同设备访问同一网址看到不同的布局,是页面内容更适合当前设备阅读。但这个不是本文的重点,重点还是放在nginx如何实现上来。 本文要讲的的是如何使用nginx区分pc和手机访问不同的网站,是物理上完全隔离的两套网站(一套移动端、一套pc端),这
小小科
2018/05/03
10.2K0
Yzncms系列教程(六):电脑和手机模板分离
yzncms的cms模块默认就一套电脑端样式,位于templates/default/cms目录下, 有些新手用户想写一套移动端样式,不知道无从下手,其实很简单,改一句代码即可实现 修改路径application/common/controller/Homebase.php,这时候你可以在templates/default/wap下面放你的手机端模板啦。
用户1739228
2022/06/16
1K0
根据访问请求客户端类型自动跳转到对应的页面地址,自动跳转到手机页面
在智能移动终端横行霸道的今天,使用移动终端来访问网站的用户是越来越多,但针对PC用户开发的网站,在移动终端上的体验非常差,这不,我们开始针对移动终端也制作了体验相对更好的页面,那么我们怎么才能知道用户使用的是哪种终端来访问我们的网站呢,总不能让用户再来记一遍我们的手机站域名吧,查阅资料,有很多方法可以实现这个需求,现在将发现的方法记录如下:
Yiiven
2022/12/15
3.2K0
推荐阅读
相关推荐
php判断访问者是否手机客户端实例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验