php中$_SERVER'HTTP_USER_AGENT'判斷是否爲手機訪問網站

HTTP_USER_AGENT是獲取用戶浏覽器信息的一個全局變量,我們可以利用HTTP_USER_AGENT獲取的值來判斷用戶是手機浏覽器還是電腦訪問網。
代碼如下

$uAgent = $_SERVER['HTTP_USER_AGENT'];

$osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|X Window|ubuntu|Longhorn|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS/2|OSF1|SUN";

if(preg_match("/($osPat)/i", $uAgent )) //winwap 模擬WAP手機上網的一個浏覽器; openwave|後面爲各pc操作系統

{

echo "電腦訪問";

}

else

{

echo "手機訪問";

}

echo '<br/>'.$uAgent;

現在我們事完整的把實例寫成一個文件

代碼如下


$ua = strtolower($_SERVER['HTTP_USER_AGENT']);

$uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|cldc|midp|mobile|wap)/i";

if(($ua == '' || preg_match($uachar, $ua))&& !strpos(strtolower($_SERVER['REQUEST_URI']),'wap'))
{
$Loaction = 'wap/';

if (!empty($Loaction))
{
ecs_header("Location: $Loactionn");

exit;
}

}


/**
* 自定義 header 函數,用于過濾可能出現的安全隱患
*
* @param string string 內容
*
* @return void
**/
function ecs_header($string, $replace = true, $http_response_code = 0)
{
if (strpos($string, '../upgrade/index.php') === 0)
{
echo '<script type="text/javascript">window.location.href="' . $string . '";</script>';
}
$string = str_replace(array("r", "n"), array('', ''), $string);

if (preg_match('/^s*location:/is', $string))
{
@header($string . "n", $replace);

exit();
}

if (emptyempty($http_response_code) || PHP_VERSION < '4.3')
{
@header($string, $replace);
}
else
{
@header($string, $replace, $http_response_code);
}
}

javascript中采用navigator.userAgent 來獲取,但非智能機似乎不支持js。

支持js的移動客戶端還可以用以下代碼簡單判斷是不是windows電腦訪問的

代碼如下

if(navigator.platform.indexOf('Win32')!=-1){
//go to pc
}else{
// go to 手機
}

更多關于判斷手機訪問文章 http://www.111cn.net/phper/php-cy/44574.htm

更多相關文章
  • 下文來爲各位整理一段php判斷是android還是ios還是wp的訪問網站例子,非常 的實用希望對各位朋友會有所幫助.在php中可以用$_SERVER['HTTP_USER_AGENT']來區分是android.ios還是wp的請求,具體可以用以下代碼來實現:$userAgent = $_SERVE
  • c# 如何判斷字符串爲空分析我們可以看到,使用length法來進行字符串判空串是有著很大的效能優勢的,尤其在進行大量字符串判空時!當然首先得判斷字符串實例是否爲空引用!1. 三種常用的字符串判空串方法:length法
  • L2TP撥號後爲何只能訪問遠端內網
    有使用L2TP撥號後爲何只能訪問遠端內網,這是什麽原因呢,下面小編給大家來介紹如何解決此問題,希望此方法對各位有所幫助吧.如下圖所示,TL-ER6110/6120作爲PPTP.L2TP伺服器,外網用戶PPTP.L2TP撥號成功後只能訪問遠端內網“192.168.0.0/24”,不能訪問Interne ...
  • 現在web發展速度非常快.各種回應式的站點越來越多.除了APP外.在平時可能需要根據客戶終端訪問來載入不同時模板或跳轉到不同時的域名下.現在分享一個函數.可以做到這樣判斷.android.ios和wp都已經測試過. 代碼如下 //判斷mobliefunction is_mobile(){ $_SER
  • ckeditor是以前Fckeditor編輯器的重新命名了,在ckeditor編輯器中我們不能使用簡單的js來獲取ckeditor編輯器的內容哦,但是ckeditor爲我們提供了一個FCKeditorAPI,他可以幫我們來實現FCKeditor的內容和判斷內容是否爲空等操作.獲取ckeditor內容 ...
  • function jstrim(value){ return value.replace(/(^s*)|(s*$)/g,"");}function isnull( chars ) { if (chars == nul
  • 本文我們來分享用php如何識別用戶是通過 PC.iPad 還是手機,然後我們還可以看看騰訊的通過JS語句判斷WEB網站的訪問端是電腦還是手機.先我們來看看一段用php如何識別用戶是通過 PC.iPad 還是手機來訪問
  • php如何判斷用戶通過手機wap訪問還是電腦直接訪問
    現在我們智能手機用戶很多了,訪問網站也有很多朋友使用手機直接訪問,這樣存在問題了如果是pc版本手機訪問肯定不好看還費人家流量了,所以很多公司做了wap站了,但是要如何判斷用戶是手機還是pc訪問網站呢,下面我整理了一些方法.最近做一個手機查詢系統,自然就牽扯到了此問題,那我就根據對wap的認識淺談下通 ...
一周排行