2014-01-17 34 views
0

我使用此:PHP用戶代理確定用於移動和片劑

$isMobile = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'Mobile'); 

    if ($isMobile) { 
     $Ymobile = "block"; 
    } else { 
     $Ymobile = "none"; 
    } 

這確定用戶是否是在移動裝置中,如果是的,它設置類一個div阻斷。

但是對於平板電腦,顯示div。

所以我改變了'移動'爲'平板',它的工作,該div沒有顯示在平板電腦上。

這是怎麼回事沒有隱藏平板電腦上的div?

我想我能做的例如爲:

$isMobile = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'Mobile'); 
    $isTablet = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'Tablet'); 

    if ($isMobile) { 
     $Ymobile = "block"; 
    } else if ($isTablet) { 
     $Ymobile = "none"; 
    } else { 
     $Ymobile = "none"; 
    } 

但仍然顯示了格。

我哪裏錯了?

+0

'echo $ _SERVER ['HTTP_USER_AGENT'];'使用平板電腦與移動設備時的報告是什麼? – MonkeyZeus

回答

0

只是一個想法..

你爲什麼不嘗試switch語句。如果沒有「移動」檢測然後設置無,在所有其他情況下(是移動電話),然後去「堵」

switch(strpos($_SERVER['HTTP_USER_AGENT'],'Mobile')) { 
    case false: 
     $Ymobile = "none"; 
     break; 
    default: 
     $Ymobile = "block"; 
     break; 
} 
+0

根據文檔strpos返回false如果沒有找到針,所以我們可以修改代碼。 –

+0

好得多。我將刪除我以前的評論,因爲它不再適用。 –

+0

它出現的問題是'移動'算作不是桌面的任何東西。因此,在檢查並運行一些測試時,ipad會爲用戶代理返回「mobile」。我只需要找到它應該只用於手機。應該研究一下 – Lovelock

相關問題