>  기사  >  백엔드 개발  >  모바일 단말과 PC 단말을 판별하는 PHP 함수

모바일 단말과 PC 단말을 판별하는 PHP 함수

不言
不言원래의
2018-04-26 10:30:472860검색

이 글은 모바일 단말기와 PC 단말기를 판단하는 PHP 함수를 소개합니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들은 이를 참조할 수 있습니다.

/*移动端判断*/
	function isMobile()
	{ 
	    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
	    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
	    {
	        return true;
	    } 
	    // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
	    if (isset ($_SERVER['HTTP_VIA']))
	    { 
	        // 找不到为flase,否则为true
	        return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
	    } 
	    // 脑残法,判断手机发送的客户端标志,兼容性有待提高
	    if (isset ($_SERVER['HTTP_USER_AGENT']))
	    {
	        $clientkeywords = array ('nokia',
	            'sony',
	            'ericsson',
	            'mot',
	            'samsung',
	            'htc',
	            'sgh',
	            'lg',
	            'sharp',
	            'sie-',
	            'philips',
	            'panasonic',
	            'alcatel',
	            'lenovo',
	            'iphone',
	            'ipod',
	            'blackberry',
	            'meizu',
	            'android',
	            'netfront',
	            'symbian',
	            'ucweb',
	            'windowsce',
	            'palm',
	            'operamini',
	            'operamobi',
	            'openwave',
	            'nexusone',
	            'cldc',
	            'midp',
	            'wap',
	            'mobile'
	            ); 
	        // 从HTTP_USER_AGENT中查找手机浏览器的关键字
	        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
	        {
	            return true;
	        } 
	    } 
	    // 协议法,因为有可能不准确,放到最后判断
	    if (isset ($_SERVER['HTTP_ACCEPT']))
	    { 
	        // 如果只支持wml并且不支持html那一定是移动设备
	        // 如果支持wml和html但是wml在html之前则是移动设备
	        if ((strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;vnd.wap.wml&#39;) !== false) && (strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;text/html&#39;) === false || (strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;vnd.wap.wml&#39;) < strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;text/html&#39;))))
	        {
	            return true;
	        } 
	    } 
	    return false;
	}


함수 호출 결과는 다음과 같습니다. 맞습니다, 모바일 버전입니다.


모바일 단말기와 PC 단말기의 차이에 따라 도메인 이름 액세스를 다르게 구성하는 경우도 있습니다. 이와 관련하여 현재 접속 중인 도메인 이름을 판단한 후, 단말 장치를 판단하고, 판단에 따라 해당 도메인 이름으로 점프할 수 있습니다. 다음과 같습니다:

// 判断当前访问地址
$url = $_SERVER[&#39;HTTP_HOST&#39;];
if($url == &#39;移动端url&#39;) {	//移动端访问地址
    if(!isMobile()) {
	// 终端是PC,跳转到PC端url
    	echo &#39;<script>location.href="https://PC端url地址"</script>&#39;;
    	exit;
    }
} else {	                //pc访问地址
    if(isMobile()) {
        // 终端是移动端,跳转到移动端url
        echo &#39;<script>location.href="https://移动端访问地址"</script>&#39;;
        exit;
    }
}

관련 권장 사항:

컴퓨터 브라우저에서 액세스하는지 모바일 브라우저에서 액세스하는지 확인하는 PHP 기능

위 내용은 모바일 단말과 PC 단말을 판별하는 PHP 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.