Tommi: erten Teil einer E-Mail-Adresse

Moin,

mit strstr("name@domain.tld", '@'); bekomme ich ja die Domain (mit @ davor). Wie bekomme ich denn den ersten Teil, also den Namen vor dem @?

Danke, Tommi

  1. Hallo,

    mit strstr("name@domain.tld", '@'); bekomme ich ja die Domain (mit @ davor). Wie bekomme ich denn den ersten Teil, also den Namen vor dem @?

    Stimmt, strstr()/strchr() und strrchr() sind sehr praktisch.
    AFAIK gibt es (noch!) keine fertige Funktion fuer das, was Du willst.
    Du brauchst also zwei Schritte:

    1.Schau, an welcher Position das @ steht => strpos()
    2. Lass Dir den Substring bis zu dieser Position ausgeben. => substr()

    Lies: PHP-Manual: String-Funktionen:
    http://www.php.net/manual/de/ref.strings.php

    Gruesse,

    Thomas

    --
    Dank /my/ automatisch ausgeblendet: JavaScript, ASP.
    Manuell "ausgeblendet": Threads mit Frames, Iframes und Scrollbalken im Subject...
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    1. Hallo Thomas,

      Stimmt, strstr()/strchr() und strrchr() sind sehr praktisch.
      AFAIK gibt es (noch!) keine fertige Funktion fuer das, was Du willst.
      Du brauchst also zwei Schritte:
      [ ... ]

      Hm, ich hab jetzt mal mit explode() rumprobiert. Problem war dann, dass die Domain ja auch mehrere Punkte enthalten kann. Jetzt bin ich so weit:

      $email_parts = explode("@", "name.nachname@teil_eins.teil_zwei.tld");
      $email_name = $email_parts[0];
      $email_domain_tld = $email_parts[1];
      $domain_parts = explode(".", $email_domain_tld);
      $email_domain = "";
      for ($i = 0; $i < count($domain_parts)-1; $i++)
       {
        $email_domain .= $domain_parts[$i];
       }
      $email_tld = $domain_parts[$i];

      Ist das gut so, oder kann das Probleme geben?

      Danke, Tommi

      1. Hallo,

        Ist das gut so, oder kann das Probleme geben?

        explode() ist natuerlich auch eine gute Loesung.

        Ich sehe nicht, was Dein Endziel ist.

        In der ersten Frage wolltest Du einfach wissen, wie
        Du den Localpart (das vor dem @) kriegst.
        Diese Frage ist ja jetzt beantwortet.

        Nun kommst Du ploetzlich mit dem Rest.
        Keine Ahnung, was Du damit anstellen willst.

        Ich sag nur: Denk daran, dass nicht in allen Laendern
        die Second-Level-Domain "die Domain" ist.
        freeserve.co.uk
        univie.ac.at
        teenager.de.vu
        u.s.w.

        Gruesse,

        Thomas

        --
        Dank /my/ automatisch ausgeblendet: JavaScript, ASP.
        Manuell "ausgeblendet": Threads mit Frames, Iframes und Scrollbalken im Subject...
        Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
        1. Hallo,

          In der ersten Frage wolltest Du einfach wissen, wie
          Du den Localpart (das vor dem @) kriegst.
          Diese Frage ist ja jetzt beantwortet.

          Ja, ich danke Euch!

          Nun kommst Du ploetzlich mit dem Rest.
          Keine Ahnung, was Du damit anstellen willst.

          Ich möchte E-Mail-Adressen spalten, dann wieder mit JavaScript zusammenbauen, damit sie nicht so leicht von SpamBots gefunden werden können.

          Ich sag nur: Denk daran, dass nicht in allen Laendern
          die Second-Level-Domain "die Domain" ist.
          freeserve.co.uk
          univie.ac.at
          teenager.de.vu
          u.s.w.

          Hm, das stimmt! Dann sollte ich wohl nur mit explode am @ spalten. Der erste Teil ist dann der Name, der zweite die Domain.

          Tommi

          1. Hiho,

            Ich möchte E-Mail-Adressen spalten, dann wieder mit JavaScript zusammenbauen, damit sie nicht so leicht von SpamBots gefunden werden können.

            ist gefährlich. Da es doch einen guten prozentsatz von Leuten gibt, die kein JavaScript aktiviert haben (ich meine bei irgend einem grossen Counter sogar ne zweistellige Prozentzahl dazu gesehen zu haben). Wenn du es wirklich gut machen willst würde ich dir ein Kontaktformular empfeheln. Du speicherst die Mailadressen in einer DB zusammen mit einer ID. Dann baust du ein Kontaktformular das die Eingaben direkt an die entsprechende Adresse aus der Datenbank schickt. So kommt niemand an die Adresse, selbst wenn er kein Bot, sondern ein Mensch ist, der da unerlaubt Adressen sammelt...

            Marc

    2. Hi,

      alternative dazu kannst du auch folgendes machen:

      // Variable mit Email als Inhalt
      $email = "sendersemail@domainname.tld";

      // Hier ist die Funktion
      preg_match("/([a-z0-9.-_]*)@([a-z0-9.-_]*)/i", $email, $matches);

      // Unter $matches findest Du nun:
      $matches[0] ^= gesamter String
      $matches[1] ^= Teil vor @
      $matches[2] ^= Domainname

      Hoffe es hilft Dir weiter...

      Gruss Stefan