영문,숫자,하이픈이 아닌 다른 문자로 이루어진 도메인의 경우,

브라우저,웹서버들이 자체적으로 ASCII 문자로 변환된 퓨니코드로 변환하여 이용한다.


PHP에서 이런 한글도메인-퓨니코드간 변환을 하기 위해서는, 

INTL extension이 필요하다.



[설치법]

PHP 5.3을 기준으로 함.


1. icu 설치

yum install icu

yum install libicu

yum install libicu-devel


2. 적절한 intl extension 다운로드

http://pecl.php.net/package/intl


3. 다운로드한 extension 컴파일

tar xvfz intl-2.0.1.tgz

cd intl-2.0.1

phpize

./configure

make 

make install


4. php.ini 에 설정

extension = intl.so





[테스트]

<?PHP

if (extension_loaded('intl')) {

    // 한글도메인 -> 퓨니코드

    echo idn_to_ascii('한글.com'); // xn--bj0bj06e.com


    // 퓨니코드 -> 한글도메인

    echo idn_to_utf8('xn--bj0bj06e.com'); // 한글.com

}

else echo '[ERROR] intl extension이 로드되지 않았음';




[참조]

퓨니코드 : http://en.wikipedia.org/wiki/Punycode

intl 매뉴얼 : http://www.php.net/intl








Posted by bloodguy

댓글을 달아 주세요