@Shimpanze

Почему не срабатывает preg_replace?

Здравствуйте!

Почему не срабатывает данное выражение?

print preg_replace( '/([а-яё])/iu', idn_to_ascii( "$1" ), 'мой-сайт.рф' );
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега PHP
$str = 'мой-сайт.рф';
$pattern = '/([-а-яё.]+)/iu';
echo preg_replace_callback($pattern, function($matches){
        return idn_to_ascii( $matches[0], IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46);
      }, $str );
// на выходе 
// xn----8sbzclmxk.xn--p1ai


Для обязательного прочтения:
1) idn_to_ascii()
2) idn_to_utf8()
3) Предопределённые константы.
4) preg_replace_callback()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!
$re = '/([а-яё.-]+)/';
$str = 'мой-сайт.рф';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы