ฟังก์ชัน idn_to_ascii() ใน PHP ใช้แปลง Unicode domain name ให้เป็นรูปแบบ IDNA ASCII IDNA ย่อมาจาก Internationalizing Domain Names in Applications เป็นกลไกจัดการ internationalized domain names ที่มี non-ASCII characters
Syntax
string idn_to_ascii( str $domain, integer $flags=IDNA_DEFAULT, integer $variant=INTL_IDNA_VARIANT_UTS46, arr &$idna_info=null )
Parameters
idn_to_ascii() รับ 4 พารามิเตอร์:
$domain – domain ที่ต้องแปลง ต้องเป็น UTF-8 encoded
$flags – combination ของ IDNA_* constants
$variant – ใช้ INTL_IDNA_VARIANT_2003 สำหรับ IDNA 2003 หรือ INTL_IDNA_VARIANT_UTS46 สำหรับ UTS#46
$idna_info – ใช้ก็ต่อเมื่อ INTL_IDNA_VARIANT_UTS46 ถูกใช้ใน $variant
Return Values
คืนค่า domain name ที่ encoded ใน ASCII-compatible form หรือ False ถ้าล้มเหลว
Example 1
<?php
// String domain
print idn_to_ascii('täst.de',0);
?>
Output
xn--tst-qla.de
Example 2
<?php
// encoded string ISO-8859-2
echo idn_to_ascii(utf8_encode('täst.de'));
// It cannot convert a domain name to ASCII
// that contains non-ASCII chars but
// it already start with "xn--"
$ascii = idn_to_ascii("xn--".chr(0xC3).chr(0xA4));
print_r($ascii);
?>
Output
xn--tst-fea82a.de