判断 MIP 页面是否为手机移动设备访问

发布时间: 2019-12-21 09:06:19 作者: 大象笔记

百度搜索结果有一个体验问题。就是经常为电脑端用户展示 MIP 的搜索结果,而且概率还不小。从百度统计里可以看到大量的这种案例:

用户明显是电脑端浏览器,却返回 MIP 页面,而且 MIP 页面里已经设置了源 PC 网页地址。但是百度搜索引擎并不遵守自己设定的规则。

不管是不是有意为之,我觉得必须后台做自动纠正。否则大量的 PC 端流量都被导向了 MIP 页面,弊端是:

所以需要在 MIP 页面展示前,加上是否是移动端请求的判断。

从 Wordpress 源代码里复制了一段判定是否为手机访问的代码,稍作修改放到了 Laravel 项目中。

function is_mobile() {
        if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
                $is_mobile = false;
        } 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 = true;
        } else {
                $is_mobile = false;
        }

	return $is_mobile;
}

测试

我是一名山东烟台的开发者,联系作者