判断ecshop来访用户是否来自手机
今天提供的两段代码是用来判断用户是否来自手机客户端的,如果是则自动跳转到 mobile 手机站点,如果不是的话则会自动跳转到电脑客户端,所以说这段代码可以应用在任何的 PHP 程序中,只是一个判断的 PHP 语句而已,在之前夏日博客的文章中介绍过一个 JS 的手机电脑判断语句,这里主要就是两段 PHP 的语句了,因为今天要做一个 ecshop 手机客户端站点,需要 php 的跳转,下面就来分享一下。
第一种方法,代码如下:
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
$uachar="/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|coolpad|ktouch|tcl|oppo|doov|amoi|bbk|cect|amoi|zte|huawei|iphone|ipad|android|smartphone)/i";
if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
{
$Loaction = 'mobile/';
if (!empty($Loaction))
{
ecs_header("Location: $Loaction\n");
exit;
}
}
其中 $Loaction 是跳转的网址了,这里是根目录下的 mobile/ 文件,也就是手机站点了,这个可以自定义的。
第二种方法,代码如下:
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
if(strpos(strtoupper($_SERVER['HTTP_ACCEPT']),"VND.WAP.WML") > 0){// 检查浏览器是否接受 WML.
$Loaction = 'mobile1/';
if (!empty($Loaction))
{
ecs_header("Location: $Loaction\n");
exit;
}
}
//$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|coolpad|k-touch|tcl|oppo|doov|amoi|bbk|cect|amoi|zte|huawei|iphone|ipad|android|smartphone)/i";
$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|coolpad|k-touch|tcl|oppo|doov|amoi|bbk|cect|amoi|zte|huawei|iphone|ipad|android|smartphone|blackberry|configuration\/cldc|hp |hp-|htc |htc_|htc-|iemobile|kindle|midp|mmp|motorola|mobile|nokia|opera mini|opera |Googlebot-Mobile|YahooSeeker\/M1A1-R2D2|android|iphone|ipod|mobi|palm|palmos|pocket|portalmmm|ppc;|smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i";
if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
{
$Loaction = 'mobile/';
if (!empty($Loaction))
{
ecs_header("Location: $Loaction\n");
exit;
}
}
第二种方法是第一种方法的改良版,很显然这里多了多种型号的手机,有一些老的手机还有一些国外的手机,想要全面的话就可以使用这一段代码了。
我的博客也添加跳转代码,真不错的。