PHP判断访问来源是PC端还是移动端

一个方法轻松搞定,各种判断后当返回true为移动端,反之为PC端。

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;
} 
 

原文地址:https://www.cnblogs.com/MPengYu/p/12639306.html

时间: 2024-10-29 05:13:03

PHP判断访问来源是PC端还是移动端的相关文章

js判断访问来源

通过navigator的userAgent属性来判定 userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值.一般来讲,它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的. 例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322) 1 function checkBrowser(){ 2

用Javascript判断访问来源操作系统, 设备, 浏览器类型

var browser = { os : function () { var u = navigator.userAgent; return {// 操作系统 linux: !!u.match(/\(X11;( U;)? Linux/i), // Linux windows: !!u.match(/Windows/i), // Windows android: !!u.match(/Android/i), // Android iOS: !!u.match(/\(i[^;]+;( U;)? CP

c# 判断访问来源是否来自手机

public Boolean IsMobileDevice() { string[] mobileAgents =new []{ "iphone", "android", "phone", "mobile", "wap", "netfront", "java", "opera mobi", "opera mini", "

Java判断PC端还是移动端

package com.*.*.*; import java.io.IOException;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; /** * 检测是否为移动端设备访问 */public class IsModel { // \b

thinkphp 检测访问来源是来自手机还是PC

/** * 判断访问是不是来自手机 * @param * @author Julian */function isMobile(){ $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:''; function Check

asp.net Core 使用过滤器判断请求客户端是否为移动端,并实现PC端和移动端请求映射和自动跳转

很多时候我们做网站时单纯的用bootstrap等前端框架实现的前端自适应带给用户的体验并不太好,所以为了提高用户体验会专门针对PC端网页重新设计一套移动端网页,但是怎么才能做到在移动端访问PC页面的时候返回对应的移动端页面,而不是PC端页面呢?下面我们就简单的进行介绍.主要技术是asp.net core. 第一步:自定义一个校验请求客户端类型的过滤器.该过滤器要实现3个功能:1.能够校验请求客户端为移动端还是PC端:2.能够配置请求路径的映射,即当前请求的PC端的路径对应的移动端路径:3.能够配

web验证访问端是 PC端还是 移动端

<script type="text/javascript">               function browserRedirect() {                   var sUserAgent = navigator.userAgent.toLowerCase();                   var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";                

判断访问端是否是移动设备

判断访问端是否是移动设备,如果是移动设备就重定向到,移动端界面. var uri = location.href; var domainWap = "http://m.vmall.com"; if(uri == domainMain || uri == (domainMain + "/index.html") || uri == (domainMain + "/")) { //判断客户端是否是移动设备,还可以判断是什么浏览器Chrome,Fire

判断手机端,PC端不同跳转

1. wap端打开pc端地址,强制跳转到wap地址 var ua = window.navigator.userAgent.toLowerCase();if (!(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))) { window.location.href = "http://" + window.location.host+"/list&