<?php
var_dump(idn_to_ascii(
"beni&servizi",
IDNA_USE_STD3_RULES | IDNA_NONTRANSITIONAL_TO_ASCII | IDNA_CHECK_CONTEXTJ, // todo use IDNA_CHECK_BIDI ?
INTL_IDNA_VARIANT_UTS46,
$info
));
$errors = [
"IDNA_ERROR_EMPTY_LABEL",
"IDNA_ERROR_LABEL_TOO_LONG",
"IDNA_ERROR_DOMAIN_NAME_TOO_LONG",
"IDNA_ERROR_LEADING_HYPHEN",
"IDNA_ERROR_TRAILING_HYPHEN",
"IDNA_ERROR_HYPHEN_3_4",
"IDNA_ERROR_LEADING_COMBINING_MARK",
"IDNA_ERROR_DISALLOWED",
"IDNA_ERROR_PUNYCODE",
"IDNA_ERROR_LABEL_HAS_DOT",
"IDNA_ERROR_INVALID_ACE_LABEL",
"IDNA_ERROR_BIDI",
"IDNA_ERROR_CONTEXTJ"
];
foreach($info['errors'] as $error){
foreach($errors as $chance){
$chanceE = constant($chance);
if($error & $chanceE){
echo $chance . "\n";
}
}
}
preferences:
57.42 ms | 402 KiB | 5 Q