@Shimpanze

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

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

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

print preg_replace( '/([а-яё])/iu', idn_to_ascii( "$1" ), 'мой-сайт.рф' );
  • Вопрос задан
  • 51 просмотр
Решения вопроса 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
Junior PHP
$re = '/([а-яё.-]+)/';
$str = 'мой-сайт.рф';

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

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

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

Войти через центр авторизации
Похожие вопросы
ЭР-Телеком Пермь
от 80 000 ₽
DANYCOM Краснодар
от 50 000 до 100 000 ₽
ЧИТАЙ-ГОРОД Москва
от 140 000 до 210 000 ₽
31 мар. 2020, в 19:32
500 руб./за проект
31 мар. 2020, в 19:10
500 руб./за проект
31 мар. 2020, в 18:49
1500 руб./за проект