#1 2014.07.13 14:18

koji
Участник
Зарегистрирован: 2014.07.13
Сообщений: 72
Карма: 3
Профиль

Скрытие email с помощью preg_replace

Геморрой, подскажи как скрыть email оставив только первые буквы названия, домена и зоны? Пример, m***@g*****.c**

Неактивен

#2 2014.07.14 10:19

Памагите
Гость

Re: Скрытие email с помощью preg_replace

есть у кого варианты?

#3 2014.07.14 12:16

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Скрытие email с помощью preg_replace

Код:

1
2
3
4
5
6
7
8
9
10
11
<?php
$mail 'test@mail.ru';
$expl explode('@'$mail);
 
list($name$domain) = $expl;
$dot explode('.'$domain);
$last end($dot);
 
$result $name[0] . '***@' $domain[0] . '***.' $last[0] . '***';
 
echo $result;

но имей в виду, что последней части может не быть, например в случае с localhost. Или могут быть много уровней доменов, типа ***org.ru

Неактивен

#4 2014.07.14 12:36

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Скрытие email с помощью preg_replace

а вот вариант на регулярке)

Код:

1
2
3
4
<?php
$emails 'test@mail.ru';
$res preg_replace(array('/^([^@])[^@]*/''/\@([^.])[^.]*/''/\.(.).*$/'), array('$1***''@$1***''.$1***'), $emails);
var_dump($res);

Неактивен

#5 2014.07.14 14:11

koji
Участник
Зарегистрирован: 2014.07.13
Сообщений: 72
Карма: 3
Профиль

Re: Скрытие email с помощью preg_replace

Gemorroj, благодарю. Все прекрасно работает.
Еще бы хотел затронуть в этой теме вопрос по поводу этого примера http://php.net/manual/ru/filter.examples.validation.php Речь идет о функции filter_var(), она способна заменить проверку e-mail по регулярному выражению? Не нашел особо отзывов и рекомендаций для этой функции.
Сейчас использую preg:

Код:

1
2
3
4
if(strlen($_POST['email'])<7 || strlen($_POST['email'])>40 || !preg_match('/^[0-9a-z\._-]+@[0-9a-z_-]+\.[a-z]{2,4}$/iD',$_POST['email']))
{
$error='Введен некорректный e-mail<br/>';
}

Неактивен

#6 2014.07.14 15:39

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Скрытие email с помощью preg_replace

да, я советовал бы использовать filter_var. Но она тоже не идеальна, там внутри тоже регулярка на си.

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.1
0.010 s