Как скрыть строку *?

Есть строка произвольной длины, нужно скрыть символы с 3 до предпоследнего, пример:
Строка - привет мир
Результат - пр*******р

Знаю, можно циклом по каждому символу, но мне кажется не лучшее решение
  • Вопрос задан
  • 123 просмотра
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
mb_substr($string, 0, 2) . str_repeat('*', mb_strlen($string) - 3) . mb_substr($string, -1)
Ответ написан
@alexalexes
Припаркую свой велосипед.
$input = 'Привет мир!';
$input_len = mb_strlen($input);
$output = join('', array_map(function($index, $char) use ($input_len)
                             {
                             	return $index > 1 && $index + 1 < $input_len ? '*' : $char;
                             }, array_keys(mb_str_split($input)), mb_str_split($input)
                            )
              );
echo $output;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы