Вы не зашли.
    
    Главная » 
PHP » Скрытие email с помощью preg_replace
 
        
        
                        
                        #1.
            koji
                                                Off
                
                                                    (3)
                                                            
                        Участник
                        2014.07.13 10:10
                                                
                                                        
 
                Геморрой, подскажи как скрыть email оставив только первые буквы названия, домена и зоны? Пример, m***@g*****.c**
        
        
                
    
 
        
        
                        
                        #2.
            Памагите
                        
                        Гость
                        2014.07.14 06:06
                                                                                            
                                            
                                                        
 
                есть у кого варианты?
        
        
                
    
 
        
        
                Код:
| span style="color: #0000BB"><?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
        
        
                
    
 
        
        
                а вот вариант на регулярке)
Код:
| span style="color: #0000BB"><?php$emails = 'test@mail.ru';$res = preg_replace(array('/^([^@])[^@]*/', '/\@([^.])[^.]*/', '/\.(.).*$/'), array('$1***', '@$1***', '.$1***'), $emails);var_dump($res); | 
 
        
        
                
     
        
        
                        
                        #5.
            koji
                                                Off
                
                                                    (3)
                                                            
                        Участник
                        2014.07.14 10:10
                                                
                                                        
 
                Gemorroj, благодарю. Все прекрасно работает.
Еще бы хотел затронуть в этой теме вопрос по поводу этого примера http://php.net/manual/ru/filter.examples.validation.php Речь идет о функции filter_var(), она способна заменить проверку e-mail по регулярному выражению? Не нашел особо отзывов и рекомендаций для этой функции.
Сейчас использую preg:
Код:
| 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/>'; | 
| } | 
 
        
        
                
     
        
        
                да, я советовал бы использовать filter_var. Но она тоже не идеальна, там внутри тоже регулярка на си.
        
        
                
    
 
Страниц: 1