gpt4 book ai didi

php - 在服务器端检测视网膜(高清)显示器

转载 作者:IT王子 更新时间:2023-10-28 23:57:52 28 4
gpt4 key购买 nike

我发现了很多关于 Retina Display 的问题,但没有一个答案在服务器端。

我想根据屏幕提供不同的图像,例如(在 PHP 中):

if( $is_retina)
$thumbnail = get_image( $item_photo, 'thumbnail_retina' ) ;
else
$thumbnail = get_image( $item_photo, 'thumbnail' ) ;

你能找到解决这个问题的方法吗?

我只能想象在 JavaScript 中进行测试,设置一个 Cookie。但是,这需要初始交换来设置它。谁有更好的解决方案?

Cookie设置代码:

(function(){
if( document.cookie.indexOf('device_pixel_ratio') == -1
&& 'devicePixelRatio' in window
&& window.devicePixelRatio == 2 ){

document.cookie = 'device_pixel_ratio=' + window.devicePixelRatio + ';';
window.location.reload();
}
})();

最佳答案

好吧,因为目前似乎没有更好的方法,这是我结合 JS、PHP 和 Cookies 的解决方案。

希望以后有更好的答案

<?php
if( isset($_COOKIE["device_pixel_ratio"]) ){
$is_retina = ( $_COOKIE["device_pixel_ratio"] >= 2 );

if( $is_retina)
$thumbnail = get_image( $item_photo, 'thumbnail_retina' ) ;
else
$thumbnail = get_image( $item_photo, 'thumbnail' ) ;

}else{
?>
<script language="javascript">
(function(){
if( document.cookie.indexOf('device_pixel_ratio') == -1
&& 'devicePixelRatio' in window
&& window.devicePixelRatio == 2 ){

var date = new Date();
date.setTime( date.getTime() + 3600000 );

document.cookie = 'device_pixel_ratio=' + window.devicePixelRatio + ';' + ' expires=' + date.toUTCString() +'; path=/';
//if cookies are not blocked, reload the page
if(document.cookie.indexOf('device_pixel_ratio') != -1) {
window.location.reload();
}
}
})();
</script>
<?php } ?>

在function.php中:

add_action( 'init', 'CJG_retina' );

function CJG_retina(){

global $is_retina;
$is_retina = isset( $_COOKIE["device_pixel_ratio"] ) AND $_COOKIE["device_pixel_ratio"] >= 2;
}

那么以后我就可以使用下面的GLOBAL了:

global $is_retina;$GLOBALS['is_retina'];

关于php - 在服务器端检测视网膜(高清)显示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15234519/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com