Работа с Punycode на PHP
18.10.2022 | Категория: Web-мастеру и не только | Автор: ManHunter
Согласно существующим стандартам, любое доменное имя может состоять только из 26 символов латинского алфавита, цифр от 0 до 9 и символа дефиса. До момента, как ICANN разрешила использование символов национальных алфавитов, это правило безоговорочно соблюдалось. Теперь же эти ваши интернеты забиты сайтами с доменами на иероглифах, кириллице, всяких умляутах и прочем юникоде. Лично я считаю, что использование любых национальных символов в доменах, ссылках и именах файлов в интернете должно быть категорически запрещено. Но так как мое мнение в этом вопросе значения не имеет, приходится работать с тем, что есть. Для преобразования домена из национальной кодировки в ACE-последовательность в PHP существует функция idn_to_ascii. Но если бы она работала как надо, то и этой статьи бы не появилось.Code (PHP) : Убрать нумерацию
- // Только домен, конвертирует правильно
- $url='СуперСайт.рф';
- echo idn_to_ascii($url);
- // xn--80ajnvgddkc.xn--p1ai
- // Ссылка целиком, конвертирует с ошибкой
- $url='https://СуперСайт.рф/login/?id=123#result';
- echo idn_to_ascii($url);
- // xn--https://-86g3c5b4doldsk.xn--/login/?id=123#result-pir2e
Читать статью целиком »
Просмотров: 626 | Комментариев: 0