X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Замена нескольких букв emil адреса
dimjan4
dimjan4
Topic Starter сообщение 30.6.2010, 10:41; Ответить: dimjan4
Сообщение #1


Добрый день.
Вот думаю, как из этого ( adres12333@mail.ru ) e-mail адреса получить этот (ad*******3@mai.ru).

  1. $email=explode('@',$email);
  2. $email[0] - adres12333
  3. Теперь разделяем полностью на массив
  4. a,d,r,e,s,s,1,2,3,3,3
  5. Оставляем только 0,1,11 эл. массива.

Но это как-то долго и муторно. Может есть более легкий способ?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 30.6.2010, 14:54; Ответить: alexdrob
Сообщение #2


самое простое это

[PHP]<?php

$email='adres12333@mail.ru';

echo preg_replace('/^(.{2}).+(.{1}@.+)$/','$1******$2',$email);

?>
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dimjan4
dimjan4
Topic Starter сообщение 30.6.2010, 16:14; Ответить: dimjan4
Сообщение #3


alexdrob, я уже думал об этом коде, но количество символов не совпадает.
Возьмем a12w@mail.ru
Выведет a1******w@mail.ru,а должно a1*w@mail.ru.
Если мы берем absjfrn4jkkfkvldlfvdk@gmail.com, должен вывести
ab******************k@gmail.com

Я думал так:
[php]
<?php
header("Content-Type: text/html; charset=UTF-8");
$email='dmitry408@gmail.com';
$name=explode('@',$email);
$count=iconv_strlen($name[0]);
$zvezdocek='';
for($i=1;$i>=$count-3;$i++) $zvezdocek.='*';
echo preg_replace('/^(.{2}).+(.{1}@.+)$/','$1'.$zvezdocek.'$2',$email);
?>
[/php]
но выдает ошибки
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 30.6.2010, 16:26; Ответить: alexdrob
Сообщение #4


[PHP]<?php

$email='absjfrn4jkkfkvldlfvdk@gmail.com';

preg_match('/^(.{2})(.+)(.{1}@.+)$/',$email,$ar);

echo $ar[1].str_repeat('*',strlen($ar[2])).$ar[3];

?>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dimjan4
dimjan4
Topic Starter сообщение 30.6.2010, 16:30; Ответить: dimjan4
Сообщение #5


alexdrob, огромное тебе спасибо.
А вот при таком варианте: asd@mail.ru выдает пустоту. Надо просто проверить на длину или можно прописать в рег. выражении?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 30.6.2010, 16:55; Ответить: alexdrob
Сообщение #6


ну можно так попробовать


[PHP]<?php

$email='absjfrn4jkkfkvldlfvdk@gmail.com';

echo preg_replace('/^(.{0,2})(.{1,})(.{1,1}@.+)$/e',"'$1'.str_repeat('*',strlen('$2')).'$3'",$email);

?>[/PHP]

если 1 символ до почты будет показан просто,
если 2 то 1й будет скрыт
если три то средний скрыт
если 4 и более то будет 2 показано скрыты один показан

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Microsoft отказался работать в России: на что повлияет и есть ли ему замена
30 Room 4410 30.12.2023, 23:17
автор: australianman
Открытая тема (нет новых ответов) Требуется помощник SEO специалиста для нескольких проектов
начинающий или middle
2 tiptopvkr 1419 2.12.2022, 12:11
автор: tiptopvkr
Открытая тема (нет новых ответов) Необходим SEO-специалист для нескольких проектов
2 tiptopvkr 1685 18.7.2022, 15:39
автор: yefedor
Открытая тема (нет новых ответов) Пишу контент, который цепляет с первых букв
3 Adilya 1496 11.6.2021, 14:55
автор: ACTIV1
Открытая тема (нет новых ответов) Размещение ваших ссылок и статей на нескольких сайтах
28 maxmer 14595 4.2.2020, 18:37
автор: maxmer


 



RSS Текстовая версия Сейчас: 19.3.2024, 15:13
Дизайн