PHP를 사용하여 서버 측에서 user-agent가 "Chrome"인지 여부를 확인하고 싶습니다. 요청 헤더에서 사용자 에이전트 문자열을 구문 분석하기위한 신뢰할 수있는 정규 표현식이 있습니까?PHP를 사용하여 사용자 에이전트로 "Chrome"을 탐지하는 방법은 무엇입니까?
15
A
답변
27
이 시점에서 너무 많은 브라우저가 인기를 얻고 브라우저 탐지의 남용을 방지하기 위해 Chrome으로 가장하여 "Chrome"이 더 이상 효과가 없도록합니다. 앞으로도 기능 감지 기능을 권장 할 예정이지만 Chrome (및 WebKit/Blink는 일반적으로) 기능 탐지 메커니즘에 대한 거짓말로 유명하기 때문에 더 이상 크랙되지 않을 정도로 커지지 않습니다.
알려진 UA 문자열을 제 3 자 사이트를 통해 다른 브라우저의 것과 비교하고 거기에서 패턴을 만드는 방법으로 만 머물러있게 할 것을 권장합니다. 어떻게하는지는 문자열 자체에 전적으로 달려 있습니다. 브라우저와 UA 문자열의 특성으로 인해 일치하는 "신뢰할 수있는"정규 표현식이 될 수 없다는 점을 명심하십시오.
PHP에서 관련 서버 변수는 $_SERVER['HTTP_USER_AGENT']
입니다.
16
당신은 또한 iOS 용 크롬을 포함 할 경우, 당신은뿐만 아니라 "CriOS"에 대해 일치해야 함을 언급 할 가치가
: 일부를 제외하여
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'CriOS') !== false) {
// User agent is Google Chrome
}
5
건물 @Adams에 대답, 더 정확하게 감지 구글 크롬
if(preg_match('/(Chrome|CriOS)\//i',$_SERVER['HTTP_USER_AGENT'])
&& !preg_match('/(Aviator|ChromePlus|coc_|Dragon|Edge|Flock|Iron|Kinza|Maxthon|MxNitro|Nichrome|OPR|Perk|Rockmelt|Seznam|Sleipnir|Spark|UBrowser|Vivaldi|WebExplorer|YaBrowser)/i',$_SERVER['HTTP_USER_AGENT'])){
// Browser might be Google Chrome
}
관련 문제
- 1. WatiN을 사용하여 Chrome을 자동화하는 방법은 무엇입니까?
- 2. 쿠키 및 사용자 에이전트로 웹 페이지에 로그인하는 방법은 무엇입니까?
- 3. WebKit Inspector를 탐지하는 방법은 무엇입니까?
- 4. Firefox 4를 탐지하는 방법은 무엇입니까?
- 5. PHP를 사용하여 MySQL에서 사용자 선택을 저장하는 효과적인 방법은 무엇입니까?
- 6. php : PHP를 사용하여 사용자 데스크탑에서 jpg를 서버로로드하는 방법은 무엇입니까?
- 7. DB 및 PHP를 사용하여 사용자 및 그룹을 관리하는 방법은 무엇입니까?
- 8. PHP를 사용하여 세션을 만드는 방법은 무엇입니까?
- 9. PHP를 사용하여 .htpasswd를 편집하는 방법은 무엇입니까?
- 10. PHP를 사용하여 .flv 파일을 제공하는 방법은 무엇입니까?
- 11. Hibernate와 트랜잭션 충돌을 탐지하는 방법은 무엇입니까?
- 12. PHP로 태그를 탐지하는 가장 좋은 방법은 무엇입니까?
- 13. PHP를 사용하여 비디오를 인코딩하는 방법은 무엇입니까?
- 14. C# 프로그램을 사용하여 게임으로 키를 탐지하는 방법은 무엇입니까?
- 15. 'remote_form_for'사용을 탐지하는 방법을 얻는 방법은 무엇입니까?
- 16. 어떤 사각형을 클릭했는지 탐지하는 방법은 무엇입니까?
- 17. 내 앱으로 IPC Chrome을 사용하는 방법은 무엇인가요?
- 18. php를 사용하여 URL에서 vars를 얻는 방법은 무엇입니까?
- 19. php를 사용하여 dateline의 형식을 지정하는 방법은 무엇입니까?
- 20. PHP를 사용하여 워터 마크를 제거하는 방법은 무엇입니까?
- 21. PHP를 사용하여 HTML을 다운로드하는 방법은 무엇입니까?
- 22. PHP를 사용하여 MAC 주소를 얻는 방법은 무엇입니까?
- 23. PHP를 사용하여 XML을 구문 분석하는 방법은 무엇입니까?
- 24. php를 사용하여 음성 채팅을 통합하는 방법은 무엇입니까?
- 25. PHP를 사용하여 js 파일을 작성하는 방법은 무엇입니까?
- 26. PHP를 사용하여 조건부로 코드 블록을로드하는 방법은 무엇입니까?
- 27. PHP를 사용하여 HTML 페이지를 분석하는 방법은 무엇입니까?
- 28. PHP를 사용하여 SQL 데이터베이스를 백업하는 방법은 무엇입니까?
- 29. PHP를 사용하여 SFTP에서 파일을 다운로드하는 방법은 무엇입니까?
- 30. PHP를 사용하여 전화 번호를 확인하는 방법은 무엇입니까?
니스 하나 useragentstring.com 및 udger.com를 사용하여 사용자 에이전트 문자열에 "크롬"와 브라우저. ** preg_match **를 사용하여 Chrome을 감지하면 확실히 오버 헤드가 발생합니다. –
왜'! == false'가 필요한가요? (strpos ($ _ SERVER [ 'HTTP_USER_AGENT'], 'Chrome'))'? –
@Tuga : 문자열이''Chrome''로 시작하면,'strpos()'는 0을 반환합니다.'0 == false' 때문에, if 코드는 실행되지 않지만 당신이 원합니다. 이 함수는 문자열이 발견되지 않으면 실제'false'를 반환하므로 '! == false'를 사용하여 유형별로 비교해야합니다. 이것은 또한 당신의 대답이 틀린 이유입니다. – BoltClock