사용자 웹브라우저 언어설정 코드에 따라 다른 페이지로 이동하기 (포워딩) > 기술자료 | 해피정닷컴

사용자 웹브라우저 언어설정 코드에 따라 다른 페이지로 이동하기 (포워딩) > 기술자료

본문 바로가기

사이트 내 전체검색

사용자 웹브라우저 언어설정 코드에 따라 다른 페이지로 이동하기 (포워딩) > 기술자료

PHP 사용자 웹브라우저 언어설정 코드에 따라 다른 페이지로 이동하기 (포워딩)

페이지 정보


본문

PHP의 변수를 이용 웹 브라우저가 어느 나라 언어로 인코딩(encoding)이 설정되어 있는지 알아보기

브라우저가 기본 encoding type을 서버에게 보내줍니다.
이것은 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 라는 전역 변수를 통해 볼 수 있습니다.
한국어의 경우 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 변수는 "ko" 입니다. 영어는 "en" 입니다.
나중에 영문인지 한글인지 인식이 쉽도록 lang 으로 쿠키를 하나 설정합니다

브라우저 언어설정코드 : https://www.happyjung.com/lecture/2684


[ 방법.1 ]
<?php
$gamedomain = ".digirave.net";
$gamepath = "/";

$host = getenv("HTTP_HOST");
if (preg_match("/www.digirave.net/", $host) || preg_match("/gagaspace/", $host))  {
    Header("Location: http://digirave.net");
    exit;
}

// 한글 방문자의 경우 kr_frame으로
if(preg_match('/ko/', $HTTP_ACCEPT_LANGUAGE)) {
    if((!preg_match('/korean/', $GLOBALS[lang])) && (!preg_match('/english/', $GLOBALS[lang])))  {
        $lang = 'korean';
        SetCookie("lang",$lang,time()+(3600*24)*365,"/");
    }
    header("Location: http://digirave.net/digibbs/php/kr_frame.php");
    exit;
}
// 영문 방문자의 경우 en_frame으로
else  {
    if((!preg_match('/korean/', $GLOBALS[lang])) && (!preg_match('/english/', $GLOBALS[lang])))  {
        $lang = 'english';
        SetCookie("lang",$lang,time()+(3600*24)*365,"/");
    }
    header("Location: http://digirave.net/digibbs/php/en_frame.php");
exit;
}
?>



[ 방법.2 ]
<?php
// 한글 방문자
if(preg_match('/ko/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    // 언어를 쿠키로 생성
    /*if((!preg_match('/korean/', $GLOBALS['lang'])) && (!preg_match('/english/', $GLOBALS['lang'])))  {
        $lang = 'korean';
        SetCookie("lang",$lang,time()+(3600*24)*365,"/");
    }*/

    header("Location: /lang/korean.php");
    exit;
}
// 일본어 방문자
elseif(preg_match('/jp/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    header("Location: /demo/lang/japanese.php");
    exit;
}
// 중국어 방문자
elseif(preg_match('/zh/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    header("Location: /lang/chinese.php");
    exit;
}
// 중국어 방문자
elseif(preg_match('/zh-ch/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    header("Location: /lang/chinese_ch.php");
    exit;
}
// 중국어 방문자
elseif(preg_match('/zh-hk/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    header("Location: /demo/lang/chinese_hk.php");
    exit;
}
// 영문 방문자
else  {
    header("Location: /demo/lang/english.php");
exit;
}
?>


[ 방법.3 ]
$var = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
switch($var) {
    Case "ko":
        echo "<meta http-equiv='Refresh' content='0; URL=/demo/lang/korean.php'>";
        break;
    Case "ja": 
        echo "<meta http-equiv='Refresh' content='0; URL=/demo/lang/japanese.php'>";
        break;
    Case "zh": 
        echo "<meta http-equiv='Refresh' content='0; URL=/demo/lang/chinese.php'>";
        break;
    default:
        echo "<meta http-equiv='Refresh' content='0; URL=/demo/lang/english.php'>";
        break;
}


테스트하기 : https://www.happyjung.com/demo/lang/



참고자료
http://ihelpers.x2soft.co.kr/programming/tipntech.php?CMD=view&IDX=278
http://bibong.tistory.com/entry/PHP에서-국가별-접속-다르게-설정하기-HTTPACCEPTLANGUAGE이용

댓글목록

등록된 댓글이 없습니다.


Total 196건 4 페이지
  • RSS
기술자료 목록
136
PHP   13608  2017-02-27 19:09 ~ 2020-11-13 14:44  
135
PHP   16025  2017-02-24 16:12  
134
PHP   35393  2016-10-06 22:14 ~ 2018-03-30 14:01  
133
PHP   20232  2016-05-25 11:50 ~ 2022-05-13 11:34  
132
PHP   18757  2016-02-16 17:31  
131
PHP   18024  2015-09-21 14:12  
열람
PHP   22516  2015-04-20 09:38 ~ 2021-02-26 16:54  
129
PHP   43006  2015-04-17 03:26  
128
PHP   22135  2015-02-17 23:32  
127
PHP   64621  2015-02-09 09:56 ~ 2023-02-24 11:06  
126
PHP   22028  2014-12-22 15:54  
125
PHP   27181  2014-12-19 06:50 ~ 2019-12-13 10:05  
124
PHP   16885  2014-12-18 13:24 ~ 2021-07-23 14:01  
123
PHP   26959  2014-11-12 10:28 ~ 2021-11-10 07:19  
122
PHP   19404  2014-10-09 09:55 ~ 2015-12-15 00:00  
121
PHP   13047  2014-09-25 15:58 ~ 2018-09-26 14:52  
120
PHP   36871  2014-09-13 13:02 ~ 2022-09-26 20:44  
119
PHP   17245  2014-04-22 02:13  
118
PHP   18479  2014-04-18 19:18  
117
PHP   15093  2014-01-26 21:07 ~ 2014-01-27 00:00  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2025 해피정닷컴. All Rights Reserved.