bazzo Skrevet 6. oktober 2005 Del Skrevet 6. oktober 2005 Hei ! Jeg lurer på hvordan jeg bryter opp en setning med php. Eks. $adresse = "Fred Olsens gate 1 0152 OSLO"; denne skal brytes ved de fire siffrene. $adresse2 = "Fred Olsens gate 1"; $poststed = "0152 OSLO"; Jeg skal bryte flere adresser fra hele landet, og den må altid skille med postnr. Noen som har en enkel måte å gjøre dette på Lenke til kommentar
bazzo Skrevet 6. oktober 2005 Forfatter Del Skrevet 6. oktober 2005 Flott ! Noen som har et eksempel Lenke til kommentar
???????? Skrevet 6. oktober 2005 Del Skrevet 6. oktober 2005 (endret) Det beste i dette tilfellet vil da være å bruke en regex. Problemet er her hvordan du skal definere den, for å passe på at den er streng nok. Adressen består først av alle tegn - det kan være alt fra bokstaver til husnummer og også teng som ' - så der er det ikke lett å være selektiv. Det eneste vi vet er at du forventer fire tall som er postnummeret, og så stedsnavnet. Så derfor foreslår jeg at mønsteret skal søke etter fire tall, et mellomrom og så minst en bokstav. Husadressen sin regex som vi ikke kan begrense må da se slik ut: (.+?) Postnr + mellomrom + poststed kan da se slik ut: ([0-9]{4} [a-zæøå].+) Hvis du da bruker preg_match så kan scriptet ditt se slik ut: $adr = "Fred Olsens gate 1 0152 OSLO"; preg_match("/(.+?)([0-9]{4} [a-zæøå].+)/i" ,$adr, $matches); var_dump($matches); Da vil du få en output som ser slik ut: array(3) { [0]=> string(28) "Fred Olsens gate 1 0152 OSLO" [1]=> string(19) "Fred Olsens gate 1 " [2]=> string(9) "0152 OSLO" } Lykke til Endret 6. oktober 2005 av ???????? Lenke til kommentar
Zic0 Skrevet 6. oktober 2005 Del Skrevet 6. oktober 2005 (endret) $adresse = "Fred Olsens gate 1 0152 OSLO"; $adresse = preg_split("/[0-9]{4}/", $adresse); Du vil da få et array med adresse som [0] og resten [1] Skriv print_r($adresse); hvis du ikke skjønner. hvis det feks kommer "Fred olsens gate 1024 0152 OSLO"... Får du spørre noen andr ehva man skal gjøre:P Endret 6. oktober 2005 av Zic0 Lenke til kommentar
???????? Skrevet 6. oktober 2005 Del Skrevet 6. oktober 2005 Det er der ([0-9]{4} [a-zæøå].+) er kjekk Som jeg sa så er den litt streng, nemmelig det at du trenger 4 tall et mellomrom og bokstaver. Lenke til kommentar
Zic0 Skrevet 6. oktober 2005 Del Skrevet 6. oktober 2005 Faktisk smart tenkt.... Det må jeg si. En ting til som går litt OT: ????: du har ingen link med flags til regex. som du har brukt i til b.l.a? Lenke til kommentar
???????? Skrevet 6. oktober 2005 Del Skrevet 6. oktober 2005 Hehe... "faktisk smart tenkt" - det betyr at du vanligvis ikke er enig med meg? Hva er spørsmålet, om jeg har link til regex som jeg har "brukt i til b.l.a."?? Lenke til kommentar
Zic0 Skrevet 6. oktober 2005 Del Skrevet 6. oktober 2005 /noe/i feks... Joda enig med deg alltid, men mente at det var smartere enn meg Lenke til kommentar
???????? Skrevet 6. oktober 2005 Del Skrevet 6. oktober 2005 Zic0, det virker absolutt som har all grunnkunnskap som skal til for å beherske regex. Jeg leset for mange år siden en artikkel på phpbuilder - ut over dette kommer reste med erfaring (dvs. et par år med prøving og feiling). Lenke til kommentar
bazzo Skrevet 6. oktober 2005 Forfatter Del Skrevet 6. oktober 2005 Takker for all hjelp Lenke til kommentar
Zic0 Skrevet 6. oktober 2005 Del Skrevet 6. oktober 2005 Zic0, det virker absolutt som har all grunnkunnskap som skal til for å beherske regex. Jeg leset for mange år siden en artikkel på phpbuilder - ut over dette kommer reste med erfaring (dvs. et par år med prøving og feiling). Spurte om du haddden liste som tilsvarte de flaggene du har etter delimiteren? Fikk visst ikke svar... 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å