Wie Email extrahieren
Hallo liebe NGler,
ich möchte aus einer Textdatei alle Email-Adressen auslesen.
Mein Script liest dazu die Textdatei ein und stellt alles zeilenweise
dar.
Wie kann ich erreichen, daß nur alle Email-Adressen erscheinen,
der Rest jedoch wegfällt?
$muster_email = "[[:alpha:]]+ [at] [^<>[:space:]]+[[:alnum:]/]";
if (ereg($muster_email,$zeile)) ... echo ...
Damit stellt er mir bereits die Zeilen mit Email-Adressen dar, nun
müsste nur der Rest davor und dahinter weg. Wer hat eine Idee?
Mit freundlichem Gruß
Rafael Nehring
Re: Wie Email extrahieren
Rafael Nehring schrieb:
> Hallo liebe NGler,
>
> ich möchte aus einer Textdatei alle Email-Adressen auslesen.
> Mein Script liest dazu die Textdatei ein und stellt alles zeilenweise
> dar.
> Wie kann ich erreichen, daß nur alle Email-Adressen erscheinen,
> der Rest jedoch wegfällt?
>
> $muster_email = "[[:alpha:]]+ [at] [^<>[:space:]]+[[:alnum:]/]";
> if (ereg($muster_email,$zeile)) ... echo ...
>
> Damit stellt er mir bereits die Zeilen mit Email-Adressen dar, nun
> müsste nur der Rest davor und dahinter weg. Wer hat eine Idee?
Mal so ganz simpel:
preg_match_all(
'/[a-z0-9]{2,} [at] [a-z0-9]{2,}.[a-z]{2,4}/i',
file_get_contents('mails.txt'),
$result
);
var_dump($result[0]);
So solltest du die Mails eigentlich bekommen.
Achso, bevor die ersten wieder rumnörgeln, der reguläre Ausdruck für die
Mails ist jetzt nur sporadisch und sollte natürlich etwas genauer arbeiten.
> Mit freundlichem Gruß
> Rafael Nehring
>
>
MfG Benny
Re: Wie Email extrahieren
> if (ereg($muster_email,$zeile)) ... echo ...
Wieso schreibt da eigentlich nciht mal jemand ne Warnung in die Doku,
dass ereg mit PHP6 rausfliegt?
Re: Wie Email extrahieren
Rafael Nehring schrieb:
> ich möchte aus einer Textdatei alle Email-Adressen auslesen.
> Mein Script liest dazu die Textdatei ein und stellt alles zeilenweise
> dar.
> Wie kann ich erreichen, daß nur alle Email-Adressen erscheinen,
> der Rest jedoch wegfällt?
>
> $muster_email =3D "[[:alpha:]]+ [at] [^<>[:space:]]+[[:alnum:]/]";
Viele gültige E-Mail-Adressen wie ? [at] ! (gültig lt. RfC822) erreichst d=
u
damit nicht. Hier findest du eine Auswahl an Mustern:
http://regexlib.com/Search.aspx?k=3Demail
> if (ereg($muster_email,$zeile)) ... echo ...
8.2. Soll ich ereg() oder preg() verwenden?
http://www.php-faq.de/q/q-regexp-ereg.html
> Damit stellt er mir bereits die Zeilen mit Email-Adressen dar, nun
> müsste nur der Rest davor und dahinter weg. Wer hat eine Idee?
$matches =3D array();
preg_match_all( '~('.$pattern.')~sim', $text, $matches, PREG_SET_ORDER);
print_r( $matches );
MfG
Niels
--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: Wie Email extrahieren
Jonas Werres schrieb:
>> if (ereg($muster_email,$zeile)) ... echo ...
>
> Wieso schreibt da eigentlich nciht mal jemand ne Warnung in die Doku,
> dass ereg mit PHP6 rausfliegt?
Vermutlich, weil PHP6 noch nicht so festgezurrt ist, dass eine Anpassung
der Dokumentation gerechtfertigt ist.
MfG
Niels
--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: Wie Email extrahieren
Hallo Benjamin, Du und die anderen netten Helfer hatten geschrieben:
> preg_match_all(
> '/[a-z0-9]{2,} [at] [a-z0-9]{2,}.[a-z]{2,4}/i',
> file_get_contents('mails.txt'),
> $result
> );
>
> var_dump($result[0]);
Vielen Dank, auch an die anderen Helfer.
MFG Rafael Nehring
Re: Wie Email extrahieren
benjamin radtke schrieb:
> Rafael Nehring schrieb:
> preg_match_all(
> '/[a-z0-9]{2,} [at] [a-z0-9]{2,}.[a-z]{2,4}/i',
Bist Du sicher, dass das gierig genug ist?
Bekommst Du auch ".co.uk" und nicht nur ".co" als Beispiel.
Cheerio
Julian
--
Julian Bessenroth ( http://www.vnox.de )
Email : jbusenet (Ligatur von "a" und "d") gmx.de
Reply-Emails : mit "[NG]" oder "[NOSPAM]" im Betreff,
sonst gehen sie unter.