영문,숫자,하이픈이 아닌 다른 문자로 이루어진 도메인의 경우,
브라우저,웹서버들이 자체적으로 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
'PHP' 카테고리의 다른 글
[PHP] json_encode 할 때 'Invalid UTF-8 sequence in argument' warning (6) | 2013.07.04 |
---|---|
[PHP] PHP에서 STDERR 로 출력하는 법. (0) | 2013.03.15 |
[PHP] 숫자 0, 문자/문자열 비교시 주의 (zero, character, string, type cast, equals) (4) | 2012.12.06 |
[PHP] integer 최고값 (PHP_INT_MAX) (0) | 2012.11.22 |
[PHP] OS에 상관없이 load average 가져오기 [OS, Windows, LoadAverage] (0) | 2012.10.16 |