一隻大鵬

PHP判定终端显示不同内容
工作上需求,需要在电脑端和手机端打开同一个网页,显示不同的图片。此方法可延伸用到许多地方,甚至淘宝行业的双端双主图...
扫描右侧二维码阅读全文
23
2019/07

PHP判定终端显示不同内容

工作上需求,需要在电脑端和手机端打开同一个网页,显示不同的图片。此方法可延伸用到许多地方,甚至淘宝行业的双端双主图显示(淘宝双主图方式已失效)。

先前在论坛上找过一段代码,这段代码目前也还不清楚哪里出问题,判定无效。

<?php

     function is_Mobile()
     {
        $agent = strtolower($_SERVER['HTTP_USER_AGENT']);
        $is_pc = (strpos($agent, 'windows nt')) ? true : false;
        $is_mac = (strpos($agent, 'mac os')) ? true : false;
        $is_iphone = (strpos($agent, 'iphone')) ? true : false;
        $is_android = (strpos($agent, 'android')) ? true : false;
        $is_ipad = (strpos($agent, 'ipad')) ? true : false;

        if($is_pc){
            return false;
        }

        if($is_mac){
            return false;
        }

        if($is_iphone){
            return true;
        }

        if($is_android){
            return true;
        }

        if($is_ipad){
            return true;
        }
        return true;
    }

    if(is_Mobile()){
        header("Location:https://www.bigrocs.com/usr/uploads/2019/07/1740105898.png");
    }else{
        header("Location:https://www.bigrocs.com/usr/uploads/2019/07/3022138704.png");
    }
?>

于是有了持续折腾,替换了判定代码。以下版本正常判定并显示出了不同的图片。

<?php

function isMobile()
    {

        if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
        {
            return true;
        }

        if (isset ($_SERVER['HTTP_VIA']))
        {

            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'
                );

            if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
            {
                return true;
            }
        }

        if (isset ($_SERVER['HTTP_ACCEPT']))
        {

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

    if(isMobile()){
        header("Location:手机图片地址");
    }else{
        header("Location:电脑图片地址");
    }
?>
文章名: 《PHP判定终端显示不同内容》

文章链接:https://bigrocs.com/archives/39/

联系方式:7628592@qq.com

除特别注明外,文章均为BIGROCS原创,转载时请注明本文出处及文章链接
Last modification:July 25th, 2019 at 07:10 am
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment