tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
150
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    slimox slimox ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    82
    Hallo zusammen,

    Bin gerade daran unser E-Mail-Tool zu verbessern. Nun habe ich folgendes Problem:

    Es gibt eine Textarea in welche belibig viele Mailadressen kopiert werden können. Leider sind die nicht immer gleich Formatiert.

    Ich suche nun mit PHP nach Mailadressen. Die die meine Regel erfüllen werden gefunden:

    z.B.
    PHP-Code:
    $post_string 'name1@dm.de; name2@dm.de name3@dm.de name4 @ dm.de; name5 (a) dm.de, name6 @dm.de';

    preg_match_all("/[A-Z0-9._%-]+@[A-Z0-9-]+.[A-Z]{2,4}/i",
                   
    $post_string,
                   
    $mailadressen
                   
    PREG_PATTERN_ORDER);

    var_dump($mailadressen); 
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    array(1) {
      [0]=>
      array(3) {
        [0]=>
        string(11) "name1@dm.de"
        [1]=>
        string(11) "name2@dm.de"
        [2]=>
        string(11) "name3@dm.de"
      }
    }

    Ich schaffe es nicht, dass es name1 - name6 findet! Wie muss das pattern aussehen, dass es das (a) auch findet?

    Bin um alle Ideen dankbar!
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Code :
    1
    
    /[[:alnum:]\.\-\_]+[ ]*(?:\@|\(a\)|\(at\))[ ]*[[:alnum:]\.\-\_]+\.[[:alpha:]]{2,4}/i
    Gilt auch für
    Code :
    1
    
    n-a.m_e (at) my.do-mai_n.info
    slimox bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    slimox slimox ist offline Mitglied Silber
    Registriert seit
    Mar 2007
    Beiträge
    82
    Yaslaw du bist unglaublich!

    Habe das ganze noch ausgebaut. [a] und [ at ] ist auch noch dabei. Die Mailadressen werden dann noch mit einem richtigen @ versehen

    PHP-Code:
    $newMailadressen = array();
                
    $post_string 'name1 (at) dm.de; name2 ( at ) dm.de name3[a]dm.de name4 (a) dm.de; name5 (a) dm.de, name6 @dm.de';

    preg_match_all("/[[:alnum:]\.\-\_]+[ ]*(?:\@|\[a\]|\[ a \]|\[at\]|\[ at \]|\(a\)|\( a \)|\(at\)|\( at \))[ ]*[[:alnum:]\.\-\_]+\.[[:alpha:]]{2,4}/i",
                   
    $post_string,
                   
    $mailadressen
                   
    PREG_PATTERN_ORDER);

    foreach(
    $mailadressen[0] as $value){
        
    $value str_replace(' '''$value); 
        
    $value str_replace('(a)''@'$value); 
        
    $value str_replace('(at)''@'$value); 
        
    $value str_replace('[a]''@'$value); 
        
    $value str_replace('[at]''@'$value); 
        
        
    $newMailadressen[] = $value;
    }
    var_dump($newMailadressen); 
    Und alle Mailadressen sind dabei
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    array(6) {
      [0]=>
      string(11) "name1@dm.de"
      [1]=>
      string(11) "name2@dm.de"
      [2]=>
      string(11) "name3@dm.de"
      [3]=>
      string(11) "name4@dm.de"
      [4]=>
      string(11) "name5@dm.de"
      [5]=>
      string(11) "name6@dm.de"
    }

    Danke nochmals für die sehr schnelle AW!
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Es währe einfacher zuerst mit einem preg_replace die Emails zu normalisieren und dann auszulesen
    PHP-Code:
      $subject 'name1@dm.de; name2@dm.de name3@dm.de name4 @ dm.de; name5 (a) dm.de, name6 @dm.de, n-a.m_e (at) my.do-mai_n.info';
      
    $pattern '/([[:alnum:]\.\-\_]+)[ ]*(?:\@|\(a\)|\(at\))[ ]*([[:alnum:]\.\-\_]+\.[[:alpha:]]{2,4})/i';
      
    $replace '\1@\2';
      
    $result preg_replace($pattern$replace$subject); 
    ergibt
    Code :
    1
    
    name1@dm.de; name2@dm.de name3@dm.de name4@dm.de; name5@dm.de, name6@dm.de, n-a.m_e@my.do-mai_n.info

    Anschliessend mit einem einfachen pattern in die versch. Mails zerlegen
    Code :
    1
    
    /[[:alnum:]\.\-\_]+\@[[:alnum:]\.\-\_]+\.[[:alpha:]]{2,4}/i
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

Ähnliche Themen

  1. Den Pc nach Dateien durchsuchen
    Von Andre im Forum Javascript & Ajax
    Antworten: 10
    Letzter Beitrag: 12.07.10, 15:45
  2. Antworten: 2
    Letzter Beitrag: 25.09.08, 19:33
  3. Files nach Buchstaben durchsuchen
    Von celloman im Forum Java
    Antworten: 11
    Letzter Beitrag: 25.09.07, 17:00
  4. Antworten: 2
    Letzter Beitrag: 21.09.06, 20:35
  5. string nach vorkommen durchsuchen
    Von liquidbeats im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 29.09.05, 21:55

Stichworte