Idn 関数
PHP Manual

idn_to_utf8

(PECL idn >= 0.1)

idn_to_utf8ASCII エンコードされたドメイン名を UTF-8 に変換する

説明

string idn_to_utf8 ( string $ascii_domain [, int &$errorcode ] )

この関数は、ASCII でエンコードされたドメイン名を元の UTF-8 版に変換します。

パラメータ

ascii_domain

ASCII エンコードされたドメイン名。非 ASCII 文字が含まれていた場合は "xn--..." のようになります。

errorcode

IDNA エラーコードが設定されます。

返り値

UTF-8 エンコードされたドメイン名、あるいはエラー時に FALSE を返します。 しかし、RFC 3490 4.2 によると「ToUnicode は決して失敗しません。 もし何らかの時点で失敗した場合は、その時点で元の入力シーケンスをそのまま返します」 とのことです。

エラー / 例外

エラーが発生した場合は、返り値が FALSE となってオプションのエラーコードが設定されます。 さらに E_WARNING メッセージも表示されます。

例1 idn_to_utf8() の例

まずは単純な例を示し、その後でエラー処理の方法を説明します (RFC によると決してエラーは発生しません)。

<?php

// おそらく utf8_decode() で結果を ISO-8859-1 に変換したもの
echo idn_to_utf8("xn--tst-qla.de");

// 決して起こりえませんが、念のため……
$utf8 idn_to_utf8("xn--tst-qla.de"$errorcode);
if (
$utf8 === false) {
    
printf("Detected error %d: %s\n"$errorcodeidn_strerror($errorcode));
}

?>

上の例の出力は、たとえば 以下のようになります。

tast.de

参考


Idn 関数
PHP Manual
アダルトレンタルサーバー