在PHP中的ipad方向检测?

时间:2011-07-30 19:26:05

标签: php ipad

您好我想在PHP中检测ipad方向,我知道我可以检测到iPad,但我如何检测方向,我需要它在PHP而不是CSS,因为我想在我的画廊中显示x图片的肖像和x在风景中。

这是我用来检测iPad for php的代码:

if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPad') !== FALSE) {

} else {

}

我已经在这个网站和谷歌上查了但是找不到任何有用的东西

三江源

7 个答案:

答案 0 :(得分:4)

当用户以不同方式持有iPad时,iPad方向可能会发生变化。因此,没有必要在php中注册它 - 当你的响应到达客户端时,它可能已经不同了。

如果需要在CSS中无法完成任何管道(如加载不同的图像等),请处理orientationchanged event in JavaScript

答案 1 :(得分:0)

这不是方向检测,而是用户代理检测。它只检测浏览页面的浏览器类型。

答案 2 :(得分:0)

您是否尝试检测设备或设备的旋转方式?

我相信你可以更轻松地在Javascript或CSS中检测设备的方向,你看过这些吗?

使用Javascript:

<button onclick="detectIPadOrientation();">What's my Orientation?</button>

<script type="text/javascript">
    window.onorientationchange = detectIPadOrientation;
    function detectIPadOrientation () 
    {
        if ( orientation == 0 ) {
            alert ('Portrait Mode, Home Button bottom');
        }
        else if ( orientation == 90 ) {
            alert ('Landscape Mode, Home Button right');
        }
        else if ( orientation == -90 ) {
            alert ('Landscape Mode, Home Button left');
        }
        else if ( orientation == 180 ) {
            alert ('Portrait Mode, Home Button top');
        }
    }
</script>

CSS

<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css">
<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">

答案 3 :(得分:0)

设备方向是动态的 - 用户可以在页面加载后旋转设备。因此,将它包含在用户代理字符串中是没有意义的。

相反,您应该使用HTML和JavaScript在方向更改时更改布局。

答案 4 :(得分:0)

每个人都建议你在Java Script中这样做,这是完全正确的,但我猜你不会从你的问题中看到这个选项。

你应该从PHP加载足够的图像(或者所有,如果不是一个愚蠢的数字,它毕竟只是一个URL字符串)来填充JSON中最大的大小(json_encode($ array of image URL))格式。然后使用JavaScript检测方向,并使用正确的图像数量/布局填充页面。

您将在图像URL的JavaScript中使用数组来动态选择和加载。

答案 5 :(得分:0)

使用此代码可能会对您充分使用 var orient = Math.abs(window.orientation) === 90 ? 'landscape' : 'portrait';

答案 6 :(得分:0)

一种野蛮的方式是通过jQuery将方向更改存储在cookie中,并使用php中的$_COOKIE变量访问它。

但是,您仍然需要使用javascript钩子来检测方向更改以及可能的页面重新加载。