Есть строка:
verstala@website.com
Вопрос:
Как заменить в данной строке все символы до @ и исключить первый символ и последний до @, на *
. То есть должно получиться вот так:
v******a@website.com
Как реализовать данную задачу?
$str = "verstala@website.com";
$pos = stripos($str, "@");
for($i=1; $i < $pos - 1; $i++) $str[$i] = "*";
echo $str; //Выводит v******a@website.com
$str = "verstala@website.com";
// При условии, что строка валидный мейл
// Первая часть это имя пользователя, вторая адрес почты
preg_match('/(?<hide>.+)@(?<addr>.+)/', $str, $matches);
//----------------------------------------------------------------
// $matches['hide'][0] - первая буква
$hide_name = $matches['hide'][0] . str_repeat("*", strlen($matches['hide']) - 1);
//
echo sprintf("%s@%s", $hide_name, $matches['addr']);
Ещё вариант в коллекцию ответов:
$str = 'verstala@website.com';
echo preg_replace_callback(
'~(?<=[\pL\d]).+(?=[\pL\d]@)~',
function($a){ return str_repeat('*', strlen($a[0])); },
$str
);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Делал пагинацию для постов, получилось только сделать вывод номеров страниц, а мне еще нужно сделать кнопки , что бы переместиться на последнюю...
MySQL отправляет знаки вопроса вместо русских символовЯ уже везде где можно установил кодировку utf-8, везде уже писал SET NAMES utf-8 и htaccess создавал...
Например есть массив, с числами: 1,1,2,1,3,1,2Как проверить каких чисел больше в массиве php?