如何使用PHP检测浏览器大小

时间:2013-01-17 21:18:17

标签: php jquery wordpress mobile

我有一个Wordpress header.php页面,看起来像这样......

<?php if( is_home() || is_front_page() ) : ?>
<img src="<?php bloginfo('template_directory'); ?>/images/logo.png" alt="logo"
width="206" height="136" border="0" class="logo" />

<?php else : ?>

<img src="<?php bloginfo('template_directory'); ?>/images/logo_inner.png"
alt="logo" width="187" height="130" border="0" class="logo" />

<?php endif; ?>

所以当当前页面不是主页时,会使用不同的徽标。

我想知道是否可以在'if'部分添加一些代码来检测浏览器大小,因为我想在移动设备上使用不同的徽标。我知道你可以使用Jquery这样做。

if ((screen.width<=420)) {
 //do something
}
else {
//do something else
}

我尝试使用Detect Mobile脚本 - http://detectmobilebrowsers.com/希望替换徽标,但php代码会覆盖jQuery代码。

if(jQuery.browser.mobile==true){ 
   jQuery('.logo').attr('src','.../images/mobile_logo.png');
} else { 
   jQuery('.logo').attr('src','../images/logo.png'); }

5 个答案:

答案 0 :(得分:5)

这不应该是服务器端的问题。这是一个CSS问题。在样式表中包含以下内容:

@media all and (max-width: 699px) {
  /* mobile styles here */
}

检查this article以获取有关媒体查询的更多信息。

答案 1 :(得分:2)

如果您只想使用不同的徽标,那么css方法可能就足够了。

但是,如果您想使用PHP(或Java或.NET)来了解服务器上设备的性质,以便为不同的设备提供不同的标记(或js或css文件) ,那么你可能想看看无线通用资源文件WURFL。我一直在玩它。我认为它没有正确的屏幕尺寸或方向,但它绝对可以识别我拥有的设备(iPhone,nexus7和kindle):

WURFL at Sourceforge.net

答案 2 :(得分:1)

如果你想要两全其美,你可以使用WURFL和Javascript来显示和隐藏图像。

以下是一个例子:

<script type='text/javascript' src="//wurfl.io/wurfl.js"></script>

if(WURFL.is_mobile){
    jQuery('.logo').attr('src','.../images/mobile_logo.png');
} else {
    jQuery('.logo').attr('src','../images/logo.png');
}

这是由ScientiaMobile(WURFL)提供的云服务,它正在进行服务器端检测并返回带有设备信息的JSON对象。如果您愿意,可以在http://wurfl.io/获得更多文档。

如果它只是你担心的图像大小,你也可以使用它们的图像缩放器,它会调整图像的大小以最好地适应加载它的设备(取决于你如何配置它)。 / p>

答案 3 :(得分:0)

使用jQuery可能会这样:

$(function(){
    var width = $(window).width();
    if (width < 599) {
        // change your image.
    }
});

答案 4 :(得分:0)

为什么不让php生成一个小徽标/占位符,然后根据您的浏览器大小使用javascript加载更大的版本。您甚至可以使用类似lazyload的jQuery(http://www.appelsiini.net/projects/lazyload)。您可以将其设置为高级,例如添加调整大小检测,以便人们在调整页面大小时不必重新加载页面。