php 홈 페이지 자동 선택 언어 전환
답 은 긍정 적 입 니 다.모두 가 구 글 을 사용 하고 있 습 니 다.당신 은 중국어 시스템 으로 구 글 의 첫 페이지 를 열 었 습 니 다.다른 언어 가 아 닌 중국어 첫 페이지 를 열 었 습 니 다.구 글 은 사용자 시스템 이 사용 하 는 최 우선 언어 가 무엇 인지 자동 으로 판단 하기 때문이다.
어떻게 하면 구 글 처럼 할 수 있 을 까?사실 간단 하 다.
브 라 우 저 에서 웹 서버 에 보 내 는 HTTP Headers Information 에는 이러한 정보 가 포함 되 어 있 습 니 다.Accept-language
이 정 보 는 브 라 우 저 에서 도구->Internet 옵션->일반적인 언어 입 니 다.브 라 우 저 에서 받 아들 일 수 있 는 언어 첫 번 째 옵션 을 설정 하 는 데 사 용 됩 니 다.다양한 언어 를 받 아들 일 수 있 는 우선 순위 입 니 다.
다음은 PHP 를 예 로 들 면,
사용자 가 받 아들 일 수 있 는 언어 정보,$SERVER['HTTP_ACCEPT_LANGUAGE']리,
변수 정 보 는 이러한'zh-cn'과 유사 합 니 다.다 중 언어 열 이 라면'zh-cn,en'과 유사 합 니 다.q=0.8,ko;q=0.5,zh-tw;q=0.3"
아래 의 문 제 는 쉽게 해 결 될 수 있다.
error_reporting(E_ALL ^ E_NOTICE);
//HTTP 분석ACCEPT_LANGUAGE 의 속성
//여 기 는 첫 번 째 언어 설정 만 가 져 옵 니 다.(기타 필요 에 따라 기능 을 강화 할 수 있 습 니 다.여 기 는 간단 한 방법 으로 만 보 여 줍 니 다)
preg_match('/^([a-z\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
$lang = $matches[1];
switch ($lang) {
case 'zh-cn' :
header('Location: [url]http://cn.example.com/[/url]');
break;
case 'zh-tw' :
header('Location: [url]http://tw.example.com/[/url]');
break;
case 'ko' :
header('Location: [url]http://ko.example.com/[/url]');
break;
default:
header('Location: [url]http://en.example.com/[/url]');
break;
}
?>