Avatar billede olinuxo Nybegynder
08. februar 2014 - 16:53 Der er 3 kommentarer

Hjælp til preg_match_all

Hej,

Jeg skal gennemse en string for mail-adresser og er gået lidt i stå. Min string er bygget sådan op:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  mail1
    Unrouteable address
  mail2
    Unrouteable address
  mail3
    Unrouteable address
  mail4
    Unrouteable address

------ This is a copy of the message, including all the headers. ------


Hvordan finder jeg mail1, mail2 osv. vha preg_match_all ?? Kan ikke lige dreje hvordan den gribes an.
Avatar billede arne_v Ekspert
08. februar 2014 - 20:38 #1
Det kan vaere rigtig svaert at identificere en email adresse, men:

\b[^@]+@[\w\-]+(\.[\w\-]+)+\b

burde virke i ca. 99.9% af tilfaeldene (medmindre jeg har lavet en fejl!).
Avatar billede olinuxo Nybegynder
09. februar 2014 - 07:34 #2
Hej Arne.

Tak for dit input. Er det ikke muligt at finde mailadresserne ud fra de andre tekster? Det jeg tænker på, er hvis nu en bruger har skrevet en ikke-gyldig mailadresse, er det ikke nemt at finde dem ud fra et regelsæt :-)

Er det ikke muligt at finde den/de tekst/mail-adresse(r) der står efter : og alle dem der står før Unrouteable address?
Avatar billede HKW Nybegynder
09. februar 2014 - 12:57 #3
en mulighed med 2 x preg:

if(preg_match_all("/The following address\(es\) failed:\r?\n\r?\n(.*\r?\n)\r?\n------ This is a copy/mis", $string, $matches))
{
  if($count=preg_match_all("/\\s*(.*?)\r?\n\\s*(.*?)\r?\n/", $matches[1][0], $matches))
  {
    for($i=0; $i < $count; $i++)
    {
      echo "adresse:".$matches[1][$i]."<br>";
      echo "fejl:".$matches[2][$i]."<br>";
    }
  }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester