PHPを使って日本語ドメインを変換する方法をメモ!
日本語ドメインはpunycode(ピュニコード)という、通常のドメインと同じような半角英数etcをもっている。
例)xn--~~~.com
日本語ドメイン:日本語テストテスト.com
↓↓↓ Punycodeに変換
Punycode:xn--zcka1bbjc7826g0ecl32k.com
こちらのサイトより、実際に変換・逆変換(エンコード・デコード)ができます。
http://punycode.jp/
これをphpで簡単に変換ができるPearのライブラリが既に用意されておりました!
ありがたや~!
『Net_IDNA2』
http://pear.php.net/search.php?q=IDNA&in=packages&x=0&y=0
今回このライブラリを使って実際にPHP変換する例をメモします。
上記Pearのサイトより、Net_IDNA2をダウンロード。
※Net_IDNAはサポート終了らしいので、Net_IDNA2を選択(現時点で)
次にダウンロードをクリックして、ファイルを落とします。
で、落としたファイルをphpのファイルからrequire等できる場所において、
下記サンプルプログラムを実行すると、変換されたドメインが表示されるようになります。
PHPサンプル
require_once('Net/IDNA2.php'); //ダウンロードしたPEARのファイルを指定
$idna = Net_IDNA2::getInstance();
$enc = $idna->encode('日本語ドメイン');
$dec = $idna->decode('Punycode');
echo $enc; //エンコードされたドメイン名
echo $dec; //デコードされたドメイン名