다국어 웹 사이트에서 좋은 사용자 경험을 사용하려면 일반적으로 방문자의 브라우저 언어 또는 선호하는 언어를 기반으로 해당 언어 페이지로 자동 이동해야합니다. PHP는이를 달성하는 유연한 방법을 제공합니다. 가장 일반적으로 사용되는 가장 일반적으로 사용되는 것은 헤더 ( "위치 : ...") 를 통해 리디렉션을 구현하는 것입니다.
구현 단계와 샘플 코드는 아래에 설명되어 있습니다.
대부분의 브라우저는 HTTP 요청에 허용 된 언어 헤더를 가져옵니다. $ _server [ 'http_accept_language'] 를 통해 PHP를 얻을 수 있습니다. 예를 들어:
$userLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
이 코드는 EN (English), ZH (중국어) 및 FR (프랑스어)과 같은 언어 코드의 첫 두 글자를 취합니다.
다음으로, 얻는 언어 코드를 기반으로 점프 할 페이지를 결정해야합니다. 예를 들어:
switch ($userLang) {
case 'zh':
$redirectUrl = 'https://m66.net/zh/';
break;
case 'fr':
$redirectUrl = 'https://m66.net/fr/';
break;
case 'en':
default:
$redirectUrl = 'https://m66.net/en/';
break;
}
여기서 우리는 간단한 지점 판단을 내 렸습니다. / zh / 로 점프하는 중국 사용자 인 경우 / fr / 로 이동하는 프랑스 사용자 및 기타 사용자 (기본값)가 영어 페이지로 점프합니다.
마지막 단계에서는 PHP의 헤더 () 함수를 사용하여 점프 응답을 보냅니다. Header () 호출은 페이지 출력 전에 있어야합니다. 그렇지 않으면 오류 가보고됩니다.
header("Location: $redirectUrl");
exit;
출구 추가; 스크립트가 점프를 보내고 나서 즉시 실행을 중지하는지 확인합니다.
<?php
// 브라우저 언어를 얻으십시오
$userLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
// 언어에 따라 점프하십시오
switch ($userLang) {
case 'zh':
$redirectUrl = 'https://m66.net/zh/';
break;
case 'fr':
$redirectUrl = 'https://m66.net/fr/';
break;
case 'en':
default:
$redirectUrl = 'https://m66.net/en/';
break;
}
// 점프 헤더를 보내십시오
header("Location: $redirectUrl");
exit;
?>
HTML 출력 또는 에코 전에 Header ()가 호출되어야합니다 . 그렇지 않으면 헤더가 이미 오류를 보냈습니다 .
더 많은 언어 감지 : 웹 사이트가 더 많은 언어를 지원하는 경우 스위치를 확장하거나 배열 매핑을 사용할 수 있습니다.
언어 스위칭 옵션 추가 : 자동 점프는 경험을 향상시킬 수 있지만 사용자는 자동 선택 오류를 피하기 위해 언어를 수동으로 전환 할 수 있습니다.