(PECL idn >= 0.1)
idn_to_ascii — Convertit un nom de domaine UTF-8 en ASCII
Cette fonction convertit un nom de domaine UTF-8 en ASCII, en fonction des spécifications IDNA toUnicode(). S'il y a des caractères non ASCII, le résultat sera de la forme "xn--".
Le nom de domaine en UTF-8.
Si, par exemple, un domaine ISO-8859-1 (c'est à dire, Western Europe latin1) est passé en argument, il sera convertit au format ACE, avec une chaîne "xn--". Cela ne sera peut-être pas celui que vous attendiez!
Recevra le code d'erreur IDNA.
La version encodée ACE du nom de domaine, ou FALSE sinon.
Si une erreur survient, FALSE est retourné, et un code d'erreur optionnel est retourné. De plus, une erreur E_WARNING est émise.
Exemple #1 Exemple avec idn_to_ascii()
Un exemple simple, et un exemple à erreur.
<?php
// Une chaîne ISO-8859-1
echo idn_to_ascii(utf8_encode('täst.de')));
// Impossible de convertir un nom de domaine en ASCII s'il contient des caractères
// non ASCII, mais qu'il commence déja par "xn--"
$ascii = idn_to_ascii("xn--".chr(0xC3).chr(0xA4), $errorcode);
if ($ascii === false) {
printf("Erreur détectée %d: %s\n", $errorcode, idn_strerror($errorcode));
}
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
xn--tst-qla.de Erreur détectée 8: Input already contain ACE prefix (`xn--')