HTTP_USER_AGENT是獲取用戶瀏覽器信息的一個全局變量,我們可以利用HTTP_USER_AGENT獲取的值來判斷用戶是手機瀏覽器還是電腦訪問網(wǎng),代碼如下:
- $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手機上網(wǎng)的一個瀏覽器; openwave|后面為各pc操作系統(tǒng)
- {
- echo "電腦訪問";
- }
- else
- {
- echo "手機訪問";
- }
- echo '<br/>'.$uAgent;
現(xiàn)在我們事完整的把實例寫成一個文件,代碼如下:
- $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 (!emptyempty($Loaction))
- {
- ecs_header("Location: $Loactionn");
- exit;
- }
- }
- /**
- * 自定義 header 函數(shù),用于過濾可能出現(xiàn)的安全隱患
- *
- * @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 手機
- }
新聞熱點
疑難解答