2013-09-26 31 views
0

鉴于iOS 7正在改变图标的​​外观,我试图找出一种方法来检测我们网站的哪些iOS版本访问者正在使用,并且从而为设备提供适当的图标......尤其适用于固定到主屏幕时。我目前拥有的是:需要帮助使用PHP来检测iOS版本以便正确使用favicon

function add_theme_favicon() { 
echo '<link rel="shortcut icon" href="/favicon.ico" >'; 
if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone OS 7_\d') !== false) { 
echo '<link rel="apple-touch-icon-precomposed" href="' . TF_FAV . '/new_favicon_256x256.png" >'; 
} 
else { 
    echo '<link rel="apple-touch-icon-precomposed" href="' . TF_FAV . '/favicon_256x256.png" >'; 
    } 
} 
add_action('wp_head', 'add_theme_favicon'); 

不幸的是,有些图像不能正确显示,因为所有版本的iOS都能显示相同的图像。有人能指出我在这个方向上的正确方向吗?

回答

1

功能strpos不使用正则表达式。您需要找到'iPhone OS 7_'而不是'iPhone OS 7_\d'。正如您可以测试HTTP_USER_AGENT不包含\d

+0

啊真棒......不错的地方。现在我刚刚发现,只适用于iPhone而不适用于iPad等。是否有一种方法可以仅通过iOS版本进行定义,而不考虑设备?我知道我可以使用||来声明每一个可能的iOS设备,但是这个练习的重点在于尽量减少图标的使用量以及剥离所需的代码。 – ElricE