判断 “是否移动端访问访问” ”php“

以sp框架为例:

<?php

class main extends spController  //main为PC端入口控制器,相当于默认的IndexController.php

{

function __construct(){

parent::__construct();

if ($this->isMobile()) {

//redirect to mobile

header("location: http://$_SERVER[HTTP_HOST]/mobile.php");  //mobile.php为手机端入口文件

exit;

}else{

....

}

}

<?php

class spController {

/**

* 是否移动端访问

*

* @return bool

*/

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

}

时间: 2024-11-10 00:58:45

判断 “是否移动端访问访问” ”php“的相关文章

PHP函数判断电脑端浏览器访问访问还是手机端浏览器访问

忘记在哪里获取的函数了,刚才不了心在一个包里面找到,临时保存起来 /**  * 是否移动端访问访问  *  * @return bool  */ function isMobile() {      // 如果有HTTP_X_WAP_PROFILE则一定是移动设备     if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))     {         return true;     }      // 如果via信息含有wap则一定是移动设备,部分服务商会屏

javascript如何判断是手机还是电脑访问本网页

1 var system ={}; 2 var p = navigator.platform; 3 system.win = p.indexOf("Win") == 0; 4 system.mac = p.indexOf("Mac") == 0; 5 system.x11 = (p == "X11") || (p.indexOf("Linux") == 0); 6 if(system.win||system.mac||syst

判断访问者是内网访问还是外网访问

//域登录  判断是内网还是外网请求 public function regip($ip){ $ip = ip2long($ip); $net_a = ip2long('10.255.255.255') >> 24; //A类网预留ip的网络地址 $net_b = ip2long('172.31.255.255') >> 20; //B类网预留ip的网络地址 $net_c = ip2long('192.168.255.255') >> 16; //C类网预留ip的网络地

WebService服务端获取访问的客户端IP

WebService服务端获取 访问的客户端IP: @WebService(serviceName = "XXXService", targetNamespace ="http://ws.sms.zjapl.com") public class XXXWebServiceImpl implements XXXWebService { @Resource(name ="org.apache.cxf.jaxws.context.WebServiceContex

判断是手机还是电脑访问的代码 &nbsp;

判断是手机还是电脑访问的函数代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public function whichpad() {     //检测访问的系统及版本.浏览器版本等信息     $agent = strtolower($_SERVER['HTTP_USER_AGENT']);     $is_iphone = (strpos($agent, 'iphone')) ? true : false;     $is_android = (strpo

php网站判断用户是否是手机访问的方法

有些时候,我们需要判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面.这里就介绍一下,如何判断用户是否用手机访问. 自定义的函数如下: $agent = check_wap(); if( $agent ) { header('Location: http://www.jb51.net'); exit; } // check if wap function check_wap(){ // 先检查是否为wap代理,准确度高 if(stristr($_SERVER['HTTP_VIA'

公共的数据库访问访问类 SqlHelper.cs

/// <summary> /// 类说明:公共的数据库访问访问类 /// </summary> using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Collections; namespace DotNet.Utilities { /// <summary> /// 

如何判断大端小端?

一.最简单的做法: 参考(深入理解计算机系统中文版第二版,P28,show_bytes) 转化成usigned char*的byte_pointer: 然后遍历输出每个字节的值,即可判断. 输入可以是任意一个数. 类似于:http://blog.csdn.net/yuucyf/article/details/7193148 二.利用联合 由于联合是共享地址的,所以可以采用如下方式: 1 #include <iostream> 2 using namespace std; 3 4 union 5

判断是移动端还是PC端

// 判断是移动端还是PC端 $http_user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']): ''; $http_accept = isset($_SERVER['HTTP_ACCEPT']) ? strtolower($_SERVER['HTTP_ACCEPT']): ''; $pos_hua = strpos($http_user_agent, 'mobi');