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',
'eri
CSSon',
'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实现判断访问端是手机还是电脑 一、 开发环境 ... 2、文本编辑器:Sublime 3。 二、主要技术 本案例主要使用PHP 7中的HTTP头信息via、浏览器代理标示符来实现判断访问端是手机还是电脑的功能。
本文将详细介绍如何在ThinkPHP中判断用户是使用手机还是PC进行访问。 首先,我们要获取用户的浏览器发送到服务器的`HTTP_USER_AGENT`头信息。这个头信息包含了用户使用的浏览器类型、版本以及其他设备信息。在...
在ThinkPHP中,模型负责处理数据,视图负责展示,控制器协调两者,实现数据与界面的交互。 3. **响应式设计**:为了让网站在不同设备上都能正常显示,采用了响应式布局。这种设计允许网站根据用户的设备屏幕大小和...
具体到开发流程,首先,开发者需要在ThinkPHP中定义API接口,这些接口将用于前端向后端发送请求并接收响应。接着,使用Layui创建相应的前端页面,编写Ajax代码来调用这些接口。在接收到后端返回的数据后,Layui可以...
thinkPHP 支付宝 手机端的 接口对接 是经过测试 成功可以支付
总的来说,这个项目为开发者提供了一个实践Thinkphp6和JWT结合的起点,有助于理解和掌握前后端分离的实现方法,同时也展示了现代Web开发中的一些最佳实践。通过学习和研究这个项目,开发者可以提升自己的技能,为...
,前端界面采用BootStrap框架设计,使得博客系统界面能自适应区分PC端和WAP手机端界面,针对不同尺寸设备响应不同的界面布局,后台系统基于ThinkPHP框架开发,程序运行速度更快,适合正在学习ThinkPHP框架拿来学习...
ThinkPHP框架开发的精品网络公司整站源码无减删+微信端接口+WAP手机端-同步WEB.txt
一套基于Vue全家桶(Vue2.x + Vue-router2.x + Vuex)+ Thinkphp的前后端分离框架。 脚手架构建也可以通过vue官方的vue-cli脚手架工具构建 后台主要功能有: * 登录、退出登录* 修改密码、记住密码* 菜单...
"Thinkphp仿众图网图片素材下载站源码"是一款针对此类需求设计的开源项目,它借鉴了知名网站众图网的界面设计和功能布局,同时结合了Thinkphp框架的强大功能,实现了资源下载站的自适应手机端展示。本文将深入探讨这...
同时,源码还强调了“自适应手机端”,意味着其采用响应式设计,可以自动适配不同设备的屏幕尺寸,确保用户在移动设备上也能流畅使用。 “封装APP”意味着源码还包含了移动端的应用程序开发,使得用户可以通过手机...
在ThinkPHP中,可以利用前端框架(如Bootstrap、Vue.js等)实现响应式布局,或者通过多套模板来分别服务于手机和电脑用户。 6. 数据库设计:在开发过程中,需要设计合理的数据库表结构,例如用户表、商品表、订单表...
在实际使用中,开发者可以通过实例化这个类并调用其方法,轻松地在ThinkPHP应用中集成中文分词功能。常见的分词算法有HMM( Hidden Markov Model)、BMES(Begin-Middle-End-Single)等,此文件中可能采用了其中的一...
在Thinkphp中使用MongoDB进行多条件查询时,需要对框架提供的驱动进行一定的修改以适应MongoDB的查询方式。 在Thinkphp中实现多条件查询时,可以使用框架提供的查询构建器(Query Builder),但是当涉及到MongoDB的...
新鲜打包的证书在线查询系统,资质证书显示网站源码,证书查询自适应手机端,采用的是thinkphp开源内核,无版权可商用,非常不错的,可开发度很高,
"ThinkPHP中文转拼音字母简单调用"这个主题,正是关于如何在ThinkPHP中轻松实现这一功能。 首先,我们要理解的是,中文转拼音主要是通过特定的算法和库来完成的,这些库能够将汉字映射到对应的汉语拼音。在这个案例...
在ThinkPHP5中,我们可以通过`$this->view->assign()`方法向模板传递数据,这些数据在模板中可以使用双大括号`{{ }}`进行输出。例如,`{{ $title }}`将输出控制器中赋值的变量 `$title`。此外,ThinkPHP5还支持视图...