Avatar billede nikologo Nybegynder
02. juli 2010 - 14:52 Der er 9 kommentarer og
1 løsning

explode <

Hej Eksperter,
Jeg har sat og prøvet at få mit php script til at explode nogle email adresser den henter fra en Imap server, men den vi simpelthen ikke explode på "<", alle andre tegn virker fint men  lige med < virker det bare ikke.

Mit script ser sådant ud:

$inbox = imap_open("{mail.gigahost.dk:110/pop3}", "email", "kode");
        $total = imap_num_msg($inbox);
        for($x=$total; $x>0; $x--)
        {
            $headers = imap_header($inbox, $x);
            $structure = imap_fetchstructure($inbox, $x);
            $mail = htmlspecialchars($headers->toaddress);
            $pieces = explode("<", $mail);
            echo $pieces[1]."<br />";
        }
    imap_close($inbox);

Der kommer ingen fejl beskeder, og når jeg prøver at echo $pieces[0] ud skriver den bare det hele.

Grunden til at det skal explodes er at jeg kun vil have den rene email adresse og ikke navnene der er foran :D

Er der nogle herinde der kan hjælpe ?? :D
Avatar billede repox Seniormester
02. juli 2010 - 14:56 #1
Prøv lige at vise et eksempel på den streng du gerne vil have renset?
Avatar billede nikologo Nybegynder
02. juli 2010 - 15:33 #2
I min variabel $mail har jeg en email adresse med navn f.eks
"fornavn efternavn <fornavnefternavn@hotmail.com>"
Den vil jeg gerne have eksplodet, så jeg kun har email adressen tilbage :D

Men det der er lidt mystisk er at hvis jeg skriver:

$mail = "fornavn efternavn <fornavnefternavn@hotmail.com>";
$pieces = explode("<", $mail);
echo $pieces[1];

altså direkte uden at hente det fra Imap, så virker det fint ??

Håber det var svar nok :D
Avatar billede repox Seniormester
02. juli 2010 - 15:41 #3
Kunne du ikke lave noget ala:
$piece = end(explode(" ", $mail));

Så får du garanteret mailadressen med < og >. Så skal du bare strippe dem fra, hvis de er der?
Avatar billede majbom Novice
02. juli 2010 - 15:52 #4
det skulle vel aldrig være fordi du smider adressen igennem en htmlspecialchars, som laver din "<" om til "&lt;" ? :)
Avatar billede repox Seniormester
02. juli 2010 - 15:56 #5
#4
LOL - det havde jeg sq ikke set ;) Klasse... :p
Avatar billede The_Buzz Novice
02. juli 2010 - 16:35 #6
#4 - klart det er det :D
Avatar billede majbom Novice
02. juli 2010 - 16:43 #7
-> #6 - ja, men nogle gange kan man overse selv de simpleste fejl. den anden dag overså jeg ordet group i en mysql-query (brugt som række-navn, uden ´ omkring)
Avatar billede nikologo Nybegynder
02. juli 2010 - 16:45 #8
Så lykkedes det, - tusinde tak for hjælpen alle sammen..
Jeg valgte at bruge repox's svar fordi jeg altid skal bruge det bagerste i array'et, da det ikke er altid der er navn og efternavn foran email'en - så det var lige det rette løsning...

Men splazz, du var også til stor hjælp, havde godt nok ikke overvejet &lt; - og det kunne jeg også bruge her til sidst da jeg skulle have fjernet <>

Såå, tusinde tak til jer - og jeg vælger at dele pointende mellem jer :D - i kan lige smide nogle svar :D
Avatar billede majbom Novice
02. juli 2010 - 17:12 #9
kommer her :)
Avatar billede majbom Novice
20. oktober 2010 - 20:00 #10
tfp :)
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