2013-09-26 29 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