Fonctions idn
PHP Manual

idn_to_ascii

(PECL idn >= 0.1)

idn_to_asciiConvertit un nom de domaine UTF-8 en ASCII

Description

string idn_to_ascii ( string $utf8_domain [, int &$errorcode ] )

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--".

Liste de paramètres

utf8_domain

Le nom de domaine en UTF-8.

Avertissement

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!

errorcode

Recevra le code d'erreur IDNA.

Valeurs de retour

La version encodée ACE du nom de domaine, ou FALSE sinon.

Erreurs / Exceptions

Si une erreur survient, FALSE est retourné, et un code d'erreur optionnel est retourné. De plus, une erreur E_WARNING est émise.

Exemples

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"$errorcodeidn_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--')

Voir aussi


Fonctions idn
PHP Manual