利用PHP判断iPhone、iPad、Android、PC设备-LMLPHP

首页那张大图确实是一个比较头疼的问题

在PC上显示是没问题的,可是到手机上就会超出页面一大截,如果做自适应,图片会被强制压缩

无奈只能用wp_is_mobile()函数在手机上隐藏了这张图,可是这函数似乎对iPad不管用

在iPad Air等高分辨率设备还好,在iPad2这类低分辨率设备上可就惨了

于是我决定自写一段代码解决这个问题

判断代码

我将使用Windows系统的设备定为PC,毕竟博客面向中国用户,大部分家用设备还是用的Windows系统

原理是判断浏览器提交的USER AGENT

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
//获取USER AGENT
$agent = strtolower($_SERVER['HTTP_USER_AGENT']);
 
//分析数据
$is_pc = (strpos($agent, 'windows nt')) ? true : false;  
$is_iphone = (strpos($agent, 'iphone')) ? true : false;  
$is_ipad = (strpos($agent, 'ipad')) ? true : false;  
$is_android = (strpos($agent, 'android')) ? true : false;  
 
//输出数据
    if($is_pc){  
        echo "这是PC";  
    }  
    if($is_iphone){  
        echo "这是iPhone";  
    }  
    if($is_ipad){  
        echo "这是iPad";  
    }  
    if($is_android){  
        echo "这是Android";  
    }  
?>

使用方法

大家将echo语句换成每个设备上需要输出的语句就可以了

若不需要对该设备进行单独设定,删除对应它的if代码即可

禁止WP Super Cache缓存首页

由于WP Super Cache会对首页进行缓存

导致判断代码失效,我们必须禁止它对首页的缓存

1、进入设置-WP Super Cache

2、高级选项,找到底部的“已被接受的文件名和拒绝的URI”

3、勾选其中的主页(is_home)

利用PHP判断iPhone、iPad、Android、PC设备-LMLPHP

4、点击保存按钮,再选择顶部的内容选项,点击“删除缓存”即可

利用PHP判断iPhone、iPad、Android、PC设备-LMLPHP

5、若有需要,进入预缓存选项,点击“立即预加载缓存”

05-11 20:28