优化 UA判断
This commit is contained in:
parent
9c7fdfba1b
commit
c758a68100
|
@ -1,78 +1,37 @@
|
||||||
<?php
|
<?php
|
||||||
function isMobile() {
|
function strexists($string, $find) {
|
||||||
// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
|
return !(strpos($string, $find) === FALSE);
|
||||||
if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
|
}
|
||||||
return true;
|
|
||||||
}
|
function dstrpos($string, $arr) {
|
||||||
// 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
|
if(empty($string)) return false;
|
||||||
if (isset($_SERVER['HTTP_VIA'])) {
|
foreach((array)$arr as $v) {
|
||||||
// 找不到为flase,否则为true
|
if(strpos($string, $v) !== false) {
|
||||||
return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
|
|
||||||
}
|
|
||||||
// 判断手机发送的客户端标志,兼容性有待提高。其中'MicroMessenger'是电脑微信
|
|
||||||
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',
|
|
||||||
'MicroMessenger'
|
|
||||||
);
|
|
||||||
// 从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 true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (ismobile() == true) {
|
|
||||||
|
function checkmobile() {
|
||||||
|
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
|
||||||
|
$ualist = array('android', 'midp', 'nokia', 'mobile', 'iphone', 'ipod', 'blackberry', 'windows phone');
|
||||||
|
if((dstrpos($useragent, $ualist) || strexists($_SERVER['HTTP_ACCEPT'], "VND.WAP") || strexists($_SERVER['HTTP_VIA'],"wap"))){
|
||||||
$ua = 'wap';
|
$ua = 'wap';
|
||||||
} else {
|
return $ua;
|
||||||
|
}else{
|
||||||
$ua = 'pc';
|
$ua = 'pc';
|
||||||
|
return $ua;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function daddslashes($string) {
|
function daddslashes($string) {
|
||||||
if (is_array($string)) {
|
if(is_array($string)) {
|
||||||
foreach ($string as $key => $val) {
|
foreach($string as $key => $val) {
|
||||||
$string[$key] = daddslashes($val, $force, $strip);
|
$string[$key] = daddslashes($val);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$string = addslashes($strip ? stripslashes($string) : $string);
|
$string = addslashes($string);
|
||||||
}
|
}
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
|
@ -126,6 +85,7 @@ function getver($ver) {
|
||||||
return $vn[0] . sprintf("%02d", $vn[1]) . sprintf("%02d", $vn[2]);
|
return $vn[0] . sprintf("%02d", $vn[1]) . sprintf("%02d", $vn[2]);
|
||||||
}
|
}
|
||||||
function saveSetting($k, $v) {
|
function saveSetting($k, $v) {
|
||||||
|
global $DB;
|
||||||
$v = daddslashes($v);
|
$v = daddslashes($v);
|
||||||
return $DB->query("UPDATE `lylme_config` SET `v` = '$v' WHERE `lylme_config`.`k` = '$k';");
|
return $DB->query("UPDATE `lylme_config` SET `v` = '$v' WHERE `lylme_config`.`k` = '$k';");
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ while ($soulist = $DB->fetch($soulists)) {
|
||||||
if ($soulist["sou_st"] == 1) {
|
if ($soulist["sou_st"] == 1) {
|
||||||
echo ' <li>
|
echo ' <li>
|
||||||
<input hidden="" checked="" type="radio" name="type" id="type-' . $soulist["sou_alias"] . '" value="';
|
<input hidden="" checked="" type="radio" name="type" id="type-' . $soulist["sou_alias"] . '" value="';
|
||||||
if ($ua == 'wap' && $soulist["sou_waplink"] != NULL) {
|
if (checkmobile() == 'wap' && $soulist["sou_waplink"] != NULL) {
|
||||||
echo $soulist["sou_waplink"];
|
echo $soulist["sou_waplink"];
|
||||||
} else {
|
} else {
|
||||||
echo $soulist["sou_link"];
|
echo $soulist["sou_link"];
|
||||||
|
|
Loading…
Reference in New Issue