怎么用phpphp 判断设备手机设备并调用不同的文件

php判断用户是否使用手机设备_百度知道
php判断用户是否使用手机设备
php判断用户是否使用手机第一步:如果你和我一样使用的是wordpress,那就复制到主题的 function.php 文件//判断是否属手机 function is_mobile() { $user_agent = $_SERVER['HTTP_USER_AGENT']; $mobile_agents = Array(&240x320&,&acer&,&acoon&,&acs-&,&abacho&,&ahong&,&airness&,&alcatel&,&amoi&,&android&,&anywhereyougo.com&,&applewebkit/525&,&applewebkit/532&,&asus&,&audio&,&au-mic&,&avantogo&,&becker&,&benq&,&bilbo&,&bird&,&blackberry&,&blazer&,&bleu&,&cdm-&,&compal&,&coolpad&,&danger&,&dbtel&,&dopod&,&elaine&,&eric&,&etouch&,&fly &,&fly_&,&fly-&,&go.web&,&goodaccess&,&gradiente&,&grundig&,&haier&,&hedy&,&hitachi&,&htc&,&huawei&,&hutchison&,&inno&,&ipad&,&ipaq&,&ipod&,&jbrowser&,&kddi&,&kgt&,&kwc&,&lenovo&,&lg &,&lg2&,&lg3&,&lg4&,&lg5&,&lg7&,&lg8&,&lg9&,&lg-&,&lge-&,&lge9&,&longcos&,&maemo&,&mercator&,&meridian&,&micromax&,&midp&,&mini&,&mitsu&,&mmm&,&mmp&,&mobi&,&mot-&,&moto&,&nec-&,&netfront&,&newgen&,&nexian&,&nf-browser&,&nintendo&,&nitro&,&nokia&,&nook&,&novarra&,&obigo&,&palm&,&panasonic&,&pantech&,&philips&,&phone&,&pg-&,&playstation&,&pocket&,&pt-&,&qc-&,&qtek&,&rover&,&sagem&,&sama&,&samu&,&sanyo&,&samsung&,&sch-&,&scooter&,&sec-&,&sendo&,&sgh-&,&sharp&,&siemens&,&sie-&,&softbank&,&sony&,&spice&,&sprint&,&spv&,&symbian&,&tablet&,&talkabout&,&tcl-&,&teleca&,&telit&,&tianyu&,&tim-&,&toshiba&,&tsm&,&up.browser&,&utec&,&utstar&,&verykool&,&virgin&,&vk-&,&voda&,&voxtel&,&vx&,&wap&,&wellco&,&wig browser&,&wii&,&windows ce&,&wireless&,&xda&,&xde&,&zte&); $is_mobile = foreach ($mobile_agents as $device) { if (stristr($user_agent, $device)) { $is_mobile = } } return $is_ } 第二步:if 语句if( is_mobile() ){ echo &您使用的是手机&; }
采纳率:97%
为您推荐:
其他类似问题
php的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。PHP 判断用户的设备是否是移动设备
代码如下:
function isMobile(){
if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])){
return true;
if (isset ($_SERVER['HTTP_VIA'])){
return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
if (isset ($_SERVER['HTTP_USER_AGENT'])){
$clientkeywords = array ('nokia',
'ericsson',
'samsung',
'philips',
'panasonic',
'alcatel',
'blackberry',
'android',
'netfront',
'symbian',
'windowsce',
'operamini',
'operamobi',
'openwave',
'nexusone',
if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))){
return true;
if (isset ($_SERVER['HTTP_ACCEPT'])){
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;
没有更多推荐了,详解PHP中引入文件的四种方式及区别
原创
4568
综述和基本语法  有4个文件加载语句:://www.php.cn/wiki/137.html" target="_blank">include,,,。require函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。include函数一般放在流程控制的处理部分中。PHP程序网页在读到 include的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。include有返回值,而require没有。“require”的工作方式是为了让PHP程序得到更高的效率,当它在同一个PHP网页中解释过一次后,第二次出现便不会再解释,这是它的优点。不过严格来说,这也是它的唯一的缺点,因为它不会重复解释引入的文件,所以当PHP网页中使用循环或条件语句来引入文件时,“require”则不会做任何的改变。当有类似这样的情形时,就必须使用“include”命令来引入 文件了。当PHP遇到一个利用“include”方式引入的文件,它就会解释一次;遇到第二次时,PHP还是会重新解释一次。与“require”相比,“include”的执行效率则会下降许多;而且当引入文件中包含了用户自定义的函数时,PHP在解释的过程中会发生函数重复定义的问题。不过“include”也不是没有优点的,因为在PHP网页中,它会每遇到一次“include”命令就会重复解释一次,所以非常适合使用在循环或条件判断的语句里。“include_once()”函数和“require_once()” 函数,会先检查目标档案的内容是不是在之前就已经导入过了,如果是,便不会再次重复导入同样的内容。他们可以载入 php 或 html 文件。文件加载的路径问题  前提说明:以下的说明举例,以 include 为例,也适用于其他3各加载语句。   有3种路径形式可以使用。相对路径  是相对于当前网页文件所在的位置来定位某个被加载的文件位置,主要依赖以下2个特殊符号:   . / :表示当前位置,即当前网页文件所在的目录(文件夹);   . . /:表示上一级位置,即当前网页文件所在目录的上一级目录;   用这2个符号来表达位置信息,比如:include &./page1.php&;
//表示当前网页文件所在文件夹的 page1.php 文件include &../page2.php&;绝对路径  绝对路径又分为本地绝对路径和网络绝对路径。本地绝对路径include &c:/d1/d2/p1.php&;  特别注意:我们不应该在代码中直接写这种本地绝对路径!但,其实这种本地绝对路径的写法是很常用的!   那怎么做,实例如下:   网络绝对路径//实际这里载入的通常也都是 html文件,因为该服务器会将 php 文件执行后返回过来include &http://www.abc123.com.index.php&;“无路径”(不推荐)  形式就是没有给出路径信息,而只给出文件名,不推荐。   比如:inclue &page1.php&; //此时通常其实php语言引擎会在当前网页目录下找该文件。关于路径问题详见:相对路径与绝对路径文件载入和执行过程详解  第一步:从 include 语句处退出 php 脚本模式(进入 html 代码模式)   第二步:载入 include 语句所设定的文件中的代码,并执行之(如同在当前文件中一样)   第三步:退出 html 模式,重新进入 php 脚本模式,继续之后的代码4个载入语句的区别include 和 require 的区别  include 载入文件失败时(即没有找到该文件),报一个“提示错误”,然后继续执行后续代码;   require 载入文件失败时,报错并立即终止执行。   通常,require 用于在程序中,后续的代码依赖于载入的文件的时候。include 和 include_once的区别  include 载入的文件不判断是否重复,只要有 include 语句,就会载入一次——即此时可能导致重复载入。
include_once 载入的文件会有内部判断机制“前面代码”是否已经载入过,就不再载入。include_once 和 require_once 的区别  同include和 require 的区别一样require 和 require_once 的区别  同 include 和 include_once 的区别一样在被载入文件中 return 语句的作用  include有返回值,而require没有    1.一个载入语句,如果载入成功,会有返回值,为1,如果载入失败,则返回的是 false(通常不使用该返回值)  但,如果被载入文件中有 return 语句,此时就有另外的机制和作用:   2.return 语句此时的作用是终止载入过程——该 return 语句的后续代码(被载入文件中的)不再载入。  3.return 语句也可用于该被载入文件载入时返回一个数据,形式为:return XX;综述和基本语法  有4个文件加载语句:include,require,include_once,require_once。require函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。include函数一般放在流程控制的处理部分中。PHP程序网页在读到 include的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。include有返回值,而require没有。“require”的工作方式是为了让PHP程序得到更高的效率,当它在同一个PHP网页中解释过一次后,第二次出现便不会再解释,这是它的优点。不过严格来说,这也是它的唯一的缺点,因为它不会重复解释引入的文件,所以当PHP网页中使用循环或条件语句来引入文件时,“require”则不会做任何的改变。当有类似这样的情形时,就必须使用“include”命令来引入 文件了。当PHP遇到一个利用“include”方式引入的文件,它就会解释一次;遇到第二次时,PHP还是会重新解释一次。与“require”相比,“include”的执行效率则会下降许多;而且当引入文件中包含了用户自定义的函数时,PHP在解释的过程中会发生函数重复定义的问题。不过“include”也不是没有优点的,因为在PHP网页中,它会每遇到一次“include”命令就会重复解释一次,所以非常适合使用在循环或条件判断的语句里。“include_once()”函数和“require_once()” 函数,会先检查目标档案的内容是不是在之前就已经导入过了,如果是,便不会再次重复导入同样的内容。他们可以载入 php 或 html 文件。文件加载的路径问题  前提说明:以下的说明举例,以 include 为例,也适用于其他3各加载语句。   有3种路径形式可以使用。相对路径  是相对于当前网页文件所在的位置来定位某个被加载的文件位置,主要依赖以下2个特殊符号:   . / :表示当前位置,即当前网页文件所在的目录(文件夹);   . . /:表示上一级位置,即当前网页文件所在目录的上一级目录;   用这2个符号来表达位置信息,比如:include &./page1.php&;
//表示当前网页文件所在文件夹的 page1.php 文件include &../page2.php&;绝对路径  绝对路径又分为本地绝对路径和网络绝对路径。本地绝对路径include &c:/d1/d2/p1.php&;  特别注意:我们不应该在代码中直接写这种本地绝对路径!但,其实这种本地绝对路径的写法是很常用的!   那怎么做,实例如下:   网络绝对路径//实际这里载入的通常也都是 html文件,因为该服务器会将 php 文件执行后返回过来include &http://www.abc123.com.index.php&;“无路径”(不推荐)  形式就是没有给出路径信息,而只给出文件名,不推荐。   比如:inclue &page1.php&; //此时通常其实php语言引擎会在当前网页目录下找该文件。关于路径问题详见:相对路径与绝对路径文件载入和执行过程详解  第一步:从 include 语句处退出 php 脚本模式(进入 html 代码模式)   第二步:载入 include 语句所设定的文件中的代码,并执行之(如同在当前文件中一样)   第三步:退出 html 模式,重新进入 php 脚本模式,继续之后的代码4个载入语句的区别include 和 require 的区别  include 载入文件失败时(即没有找到该文件),报一个“提示错误”,然后继续执行后续代码;   require 载入文件失败时,报错并立即终止执行。   通常,require 用于在程序中,后续的代码依赖于载入的文件的时候。include 和 include_once的区别  include 载入的文件不判断是否重复,只要有 include 语句,就会载入一次——即此时可能导致重复载入。
include_once 载入的文件会有内部判断机制“前面代码”是否已经载入过,就不再载入。include_once 和 require_once 的区别  同include和 require 的区别一样require 和 require_once 的区别  同 include 和 include_once 的区别一样在被载入文件中 return 语句的作用  include有返回值,而require没有    1.一个载入语句,如果载入成功,会有返回值,为1,如果载入失败,则返回的是 false(通常不使用该返回值)  但,如果被载入文件中有 return 语句,此时就有另外的机制和作用:   2.return 语句此时的作用是终止载入过程——该 return 语句的后续代码(被载入文件中的)不再载入。  3.return 语句也可用于该被载入文件载入时返回一个数据,形式为:return XX;以上就是详解PHP中引入文件的四种方式及区别的详细内容,更多请关注php中文网其它相关文章!
江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。
PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...
ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...
本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。
《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。
所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...
本课以最新版ThinkPHP5.0.10为基础进行开发,全程实录一个完整企业点,从后台到前台,从控制器到路由的全套完整教程,不论是你是新人,还是有一定开发经验的程序员,都可以从中学到实用的知识~~
ThinkPHP是一个快速、开源的轻量级国产PHP开发框架,是业内最流行的PHP框架之一。本课程以博客系统为例,讲述如何使用TP实战开发,从中学习Thinkphp的实践应用。模版下载地址:http:/...
本课程是php实战开发课程,以爱奇艺电影网站为蓝本从零开发一个自己的网站。目的是让大家了解真实项目的架构及开发过程
本课以一个极简的PHP开发框架为案例,向您展示了一个PHP框架应该具有的基本功能,以及具体的实现方法,让您快速对PHP开发框架的底层实现有一个清楚的认识,为以后学习其实的开发框架打下坚实的基础。
javascript是运行在浏览器上的脚本语言,连续多年,被评为全球最受欢迎的编程语言。是前端开发必备三大法器中,最具杀伤力。如果前端开发是降龙十八掌,好么javascript就是第18掌:亢龙有悔。...
本站9月直播课已经结束,本套教程是直播实录,没有报上名或者漏听学员福利来了,赶紧看看吧,说不定这里就有你的菜
轻松明快,简洁生动,让你快速走入HTML5的世界,体会语义化开发的魅力
JavaScript能够称得上是史上使用最广泛的编程语言,也是前端开发必须掌握的三技能之一:描述网页内容的HTML、描述网页样式的CSS以及描述网页行为的JavaScript。本章节将帮助大家迅速掌握...
《php用户注册登录系统》主要介绍网站的登录注册功能,我们会从最简单的实现登录注册功能开始,增加验证码,cookie验证等,丰富网站的登录注册功能
Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。为所有开发者、所有应用场景而设计,它让前端开发更快速、简单,所有开发者都能快速上手...
《php.cn独孤九贱(2)-css视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了CSS知识...
《PHP学生管理系统视频教程》主要给大家讲解了HTML,PHP,MySQL之间的相互协作,实现动态的网页显示和获取数据.
jQuery是一个快速、简洁的JavaScript框架。设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的...
《弹指间学会HTML视频教程》从最基本的概念开始讲起,步步深入,带领大家学习HTML,了解各种常用标签的意义以及基本用法,学习HTML知识为以后的学习打下基础
《最新微信小程序开发视频教程》本节课程是由微趋道录制,讲述了如何申请一个微信小程序,以及开发中需要使用哪些工具,和需要注意哪些等。
全栈工程师
文章总浏览数PHP代码判断设备是手机还是平板电脑(两种方法)
转载 &更新时间:日 10:10:48 & 投稿:mrr
随着互联网移动设备的普及,很多网站都兼容手机端浏览,为了更好的让网页在手机端显示,我们都选择了使用CSS媒体查询制作响应式模版。本文给大家介绍PHP代码判断设备是手机还是平板电脑(两种方法),感兴趣的朋友一起学习吧
现在移动互联网越来越发达,很多的网站都普及了手机端浏览,为了更好的让网页在手机端显示,我们都选择了使用CSS媒体查询制作响应式模版,但这也有弊端,例如某些网站的结构是CMS类型的,太多的内容要显示,而使用CSS媒体查询设计响应式,只会隐藏但还是加载了,为了让手机端更快速的显示出内容,我们可以使用这个PHP判断手机设备代码,使用这个代码可以很方便的显示或不显示自定义的内容。
在做WEB开发的时候经常会需要用到对移动设备的页面匹配,当然可以直接把网站做成响应式的,但如果不想这么做的话,可以使用PHP对设备类型进行判断, 然后显示相应的界面和内容。今天分享一种使用 PHP 判断设备是否是手机/平板的方法,方法来源于WordPress(wp-includes/vars.php:125),适用于大部分类型的手机/平板判 断:
* Test if the current browser runs on a mobile device (smart phone, tablet, etc.)
* @staticvar bool $is_mobile
* @return bool
function wp_is_mobile() {
static $is_mobile =
if ( isset( $is_mobile ) ) {
return $is_
if ( empty($_SERVER['HTTP_USER_AGENT']) ) {
$is_mobile =
} elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (all iPhone, iPad, etc.)
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) {
$is_mobile =
$is_mobile =
return $is_
这是PHP判断手机设备函数代码,复制到PHP函数库中调用:
function is_mobile() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$mobile_browser = Array(
"mqqbrowser", //手机QQ浏览器
"opera mobi", //手机opera
"juc","iuc",//uc浏览器
"fennec","ios","applewebKit/420","applewebkit/525","applewebkit/532","ipad","iphone","ipaq","ipod",
"iemobile", "windows ce",//windows phone
"240×320","480×640","acer","android","anywhereyougo.com","asus","audio","blackberry","blazer","coolpad" ,"dopod", "etouch", "hitachi","htc","huawei", "jbrowser", "lenovo","lg","lg-","lge-","lge", "mobi","moto","nokia","phone","samsung","sony","symbian","tablet","tianyu","wap","xda","xde","zte"
$is_mobile =
foreach ($mobile_browser as $device) {
if (stristr($user_agent, $device)) {
$is_mobile =
return $is_
这是调用代码,可以加上if判断:
&?php if(is_mobile()):?&
设置手机端的内容
&? ?&
以上所述就是本文的全部内容,希望大家喜欢。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具ThinkPHP在入口文件中判断是手机还是PC端访问网站 - Mr.风的影子 - 博客园
随笔 - 79, 文章 - 2, 评论 - 2, 引用 - 0
&?php// +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK ]// +----------------------------------------------------------------------// | Copyright (c)
http://thinkphp.cn All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: liu21st &&// +----------------------------------------------------------------------// 应用入口文件// 检测PHP环境if(version_compare(PHP_VERSION,'5.3.0','&'))& die('require PHP & 5.3.0 !');//判断是手机登录还是电脑登录function ismobile() {&&& // 如果有HTTP_X_WAP_PROFILE则一定是移动设备&&& if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))&&&&&&&&& &&&& //此条摘自TPM智能切换模板引擎,适合TPM开发&&& if(isset ($_SERVER['HTTP_CLIENT']) &&'PhoneClient'==$_SERVER['HTTP_CLIENT'])&&&&&&&&&& //如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息&&& if (isset ($_SERVER['HTTP_VIA']))&&&&&&& //找不到为flase,否则为true&&&&&&& return stristr($_SERVER['HTTP_VIA'], 'wap') ? true :&&& //判断手机发送的客户端标志,兼容性有待提高&&& 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']))) {&&&&&&&&&&&&&&&&&& }&&& }&&& //协议法,因为有可能不准确,放到最后判断&&& 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')))) {&&&&&&&&&&&&&&&&&& }&&& }&&&&}// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为falsedefine('APP_DEBUG',True);if(ismobile()){&& &//定义title的公众部分&& &header("Location: http://m.enkiorder.com/");&& &&& &// 定义应用目录&& &//define('APP_PATH','./Mobile/');}else{&& &// 定义应用目录&& &define('APP_PATH','./Application/');}define('IMAGE_PATH',dirname(__FILE__));// 引入ThinkPHP入口文件require './ThinkPHP/ThinkPHP.php';// 亲^_^ 后面不需要任何代码了 就是如此简单

我要回帖

更多关于 php 判断设备 的文章

 

随机推荐