PHPで日本語ドメインの扱う(punycodeに変換)するメモ!

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をダウンロード。

IDNA2

※Net_IDNAはサポート終了らしいので、Net_IDNA2を選択(現時点で)

次にダウンロードをクリックして、ファイルを落とします。

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; //デコードされたドメイン名