LateFot Skrevet 13. november 2005 Del Skrevet 13. november 2005 Heisan sitter å pusler litt med ett skript for å søke gjennom en string etter e-mail adresser. Bruker ereg() funksjonen med denne regex'en <?php $regex = "^[\.a-zA-Z0-9_-]+@[\.a-zA-Z0-9_-]+\.[\.a-zA-Z]{2,6}$"; ?> det jeg lurer på er hvordan kan jeg sette denne regex'en til å søke etter mer enn en e-mail adresse? eller er det mulig? har forsøkt endel forskjellige løsninger, men er sluppet opp for ideer. om noen har en løsning Lenke til kommentar
???????? Skrevet 13. november 2005 Del Skrevet 13. november 2005 Hva mener du med mer enn en epost adressen? Slik at en string inneholder f.eks. to epost adresser? "[email protected] [email protected]"? I så fall, skal det være tillatt med noen andre tegn, som mellomrom eller? forklar litt mer så skal vi se om det ikke er mulig å hjelpe deg. Lenke til kommentar
Axentrix Skrevet 13. november 2005 Del Skrevet 13. november 2005 Heisan sitter å pusler litt med ett skript for å søke gjennom en string etter e-mail adresser. Bruker ereg() funksjonen med denne regex'en <?php $regex = "^[\.a-zA-Z0-9_-]+@[\.a-zA-Z0-9_-]+\.[\.a-zA-Z]{2,6}$"; ?> det jeg lurer på er hvordan kan jeg sette denne regex'en til å søke etter mer enn en e-mail adresse? eller er det mulig? har forsøkt endel forskjellige løsninger, men er sluppet opp for ideer. om noen har en løsning 5147305[/snapback] ville kanskje brukt $reqex = explode(" ",$regex); foreach($reqex as $value) {if(ereg("^[\.a-zA-Z0-9_-]+@[\.a-zA-Z0-9_-]+\.[\.a-zA-Z]{2,6}$",$valie)){$email[] = $value;}} ikke testet... Lenke til kommentar
LateFot Skrevet 13. november 2005 Forfatter Del Skrevet 13. november 2005 (endret) hehe dårlig forklart det jeg mente var å finne flere e-mail adresser i en string. stringen kan se slik ut: $string = "blabla [email protected] blabla [email protected] [email protected] som du ser kan det være tekst biter som ikke er e-mail adresser her" har prøvd denne varianten av regex'en uten store resultater: $regex = "^([\.a-zA-Z0-9_-]+@[\.a-zA-Z0-9_-]+\.[\.a-zA-Z]{2,6})*$"; if ($match = ereg($regex, $string, $arr)) { foreach ($arr as value) { echo $value; } }else{ echo 'no no no...'; } håpet med denne koden var å bruke "atoms" til å få regex'en til å søke gjennom resten av stringen og legge treffene inn i $arr og printe de ut. edit: la til litt Endret 13. november 2005 av LateFot Lenke til kommentar
LateFot Skrevet 13. november 2005 Forfatter Del Skrevet 13. november 2005 (endret) ville kanskje brukt $reqex = explode(" ",$regex); foreach($reqex as $value) {if(ereg("^[\.a-zA-Z0-9_-]+@[\.a-zA-Z0-9_-]+\.[\.a-zA-Z]{2,6}$",$valie)){$email[] = $value;}} ikke testet... 5147492[/snapback] mjo vil jo være en mulighet, men det vil vil vel være lettere om ereg() alene kan hente ut treffene. om jeg skulle bruke " " som separator vil det bli en god del arrays som ikke inneholder e-mail adresser. jeg regner med å bruke denne for å hente ut e-mail adresser fra tekster som nyheter etc. hvor det er mye annen tekst i tillegg. takker så mye for svar Endret 13. november 2005 av LateFot Lenke til kommentar
???????? Skrevet 13. november 2005 Del Skrevet 13. november 2005 Da trenger du en av preg_ frunksjonene, f.eks. preg_grep() Lenke til kommentar
LateFot Skrevet 13. november 2005 Forfatter Del Skrevet 13. november 2005 Da trenger du en av preg_ frunksjonene, f.eks. preg_grep() 5147785[/snapback] var redd for det... da blir det loking og koking på PCRE regex (når man endelig hadde begynnt å skjønne POSIX regex ) men tusen takk for hjelpen Lenke til kommentar
???????? Skrevet 13. november 2005 Del Skrevet 13. november 2005 Det er ikke store forskjellen mellom ereg og preg, ta en kikk på denne: $string = "bla bla [email protected] mer bla bla [email protected] litt mer bla bla før den siste adressen [email protected]"; preg_match_all("/([\.a-zA-Z0-9_-]+@[\.a-zA-Z0-9_-]+\.[\.a-zA-Z]{2,6})/i", $string, $matches); var_dump($matches); (merk: den tar utgangspunktet i den validering av adresser, jeg har ikke validert den eller kikket på den!) Lenke til kommentar
LateFot Skrevet 13. november 2005 Forfatter Del Skrevet 13. november 2005 aha, utifra php boken min så det ut som pcre og posix hadde helt forskjellige syntax. får takke nok en gang for hjelpen, da løste du vist hele problemet mitt Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå