【PHP】日本語ドメインをピュニコードに変換する。

file_get_contents()などでページのコンテンツを取得しにいく際、日本語ドメインをそのまま渡すとエラーになってしまうため、ピュニコードに変換してやる必要がある。

調べるとPEARのライブラリを利用することで簡単に実現可能な模様。

下記URLからライブラリをダウンロードして任意の位置に配置した後、「Net/IDNA2.php」をrequireすれば使用可能。

http://pear.php.net/package/Net_IDNA2/download

以下例。

require_once 'Net/IDNA2.php'; 
$punycode = Net_IDNA2::getInstance();

$encode = $punycode->encode('日本語ドメイン.com');
$decode = $punycode->decode('xn--eckwd4c7c5976acvb2w6i.com');

これで暗号化と復号化が可能。