idn_to_ascii() ฟังก์ชันใน PHP ใช้เพื่อแปลงชื่อโดเมน Unicode เป็นรูปแบบ IDNA ASCII IDNA ย่อมาจาก Internationalizing Domain Names ในแอปพลิเคชัน เป็นกลไกในการจัดการชื่อโดเมนสากลที่มีอักขระที่ไม่ใช่ ASCII
ไวยากรณ์
string idn_to_ascii( str $domain, integer $flags=IDNA_DEFAULT, integer $variant=INTL_IDNA_VARIANT_UTS46, arr &$idna_info=null )
พารามิเตอร์
idn_to_ascii() ยอมรับสี่พารามิเตอร์ต่อไปนี้ -
-
$โดเมน − นี่คือโดเมนที่จะแปลง จะต้องเข้ารหัส UTF-8
-
$flags − พารามิเตอร์นี้เป็นการรวมกันของ IDNA_*constants .
-
$ตัวแปร − พารามิเตอร์นี้ใช้ INTL_IDNA_VARIANT_2003 สำหรับ IDNA 2003 หรือ INTL_IDNA_VARIANT_UTS46 สำหรับ UTS#46
-
$idna_info − พารามิเตอร์นี้จะใช้เฉพาะเมื่อ INTL_IDNA_VARIANT_UTS46 ใช้ใน $variant พารามิเตอร์
คืนค่า
ฟังก์ชันนี้ส่งคืนชื่อโดเมนที่เข้ารหัสในรูปแบบที่เข้ากันได้กับ ASCII หรือส่งกลับค่า False เมื่อล้มเหลว
ตัวอย่างที่ 1
<?php // String domain print idn_to_ascii('täst.de',0); ?>
ผลลัพธ์
xn--tst-qla.de
ตัวอย่างที่ 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); ?>
ผลลัพธ์
xn--tst-fea82a.de