PHP에서 사용자 브라우저 감지와 관련하여 $_SERVER 사용 중에서 선택합니다. ['HTTP_USER_AGENT'] 및 get_browser 기능이 발생합니다. 각 접근 방식에는 장점과 단점이 있습니다.
$_SERVER['HTTP_USER_AGENT']는 브라우저, 운영 체제 및 기타 클라이언트별 세부 정보에 대한 정보가 포함된 원시 사용자 에이전트 문자열을 제공합니다. 이 방법은 널리 지원되며 브라우저 감지를 위한 포괄적인 데이터 세트를 제공합니다. 그러나 사용자 에이전트는 위조되거나 수정될 수 있으며 잠재적으로 부정확한 결과로 이어질 수 있다는 점에 유의하는 것이 중요합니다.
반면, get_browser는 사용자 에이전트 문자열을 구문 분석하고 다음을 반환하는 내장 PHP 함수입니다. 브라우저별 정보가 포함된 배열입니다. 특정 브라우저 속성을 식별하고 추출하는 프로세스를 쉽게 하도록 설계되었습니다. 그러나 get_browser는 미리 컴파일된 데이터 세트를 사용하므로 모든 사용자 에이전트, 특히 신흥 브라우저나 덜 일반적인 브라우저의 경우 항상 최신이거나 정확하지 않을 수 있습니다.
$_SERVER['HTTP_USER_AGENT']를 사용하여 관련 CSS 링크를 출력하는 것은 간단해 보일 수 있지만 모범 사례로 간주되지는 않습니다. 브라우저 사용자 에이전트는 크게 다를 수 있으며 예상치 못한 요소를 포함할 수 있습니다. 예를 들어, 최신 버전의 Internet Explorer에는 제공된 업데이트에 설명된 것처럼 사용자 에이전트 문자열에 "Mozilla"가 포함될 수 있습니다.
신뢰할 수 있는 CSS 타겟팅을 보장하려면 미디어 쿼리나 CSS 기능 감지를 대신 사용하는 것이 좋습니다. 사용자 에이전트 문자열에만 의존합니다.
다음 코드 조각은 $_SERVER['HTTP_USER_AGENT']를 사용하여 브라우저 감지를 위한 보다 포괄적이고 안정적인 방법을 제공합니다:
if (stripos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'Internet Explorer';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== FALSE) { // For supporting IE 11
echo 'Internet Explorer';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== FALSE) {
echo 'Mozilla Firefox';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== FALSE) {
echo 'Google Chrome';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== FALSE) {
echo "Opera Mini";
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== FALSE) {
echo "Opera";
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Safari') !== FALSE) {
echo "Safari";
} else {
echo 'Something else';
}
이 스니펫은 사용자 에이전트 문자열 내의 특정 키워드를 확인하여 일반 브라우저를 식별합니다. Internet Explorer, Firefox, Chrome, Opera 및 Safari와 같은 널리 사용되는 브라우저를 다루며 Internet Explorer의 "Trident" 호환성 모드 및 Opera Mini의 고유한 사용자 에이전트와 같은 미묘한 차이를 처리합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3