Quattro7 Skrevet 7. desember 2007 Del Skrevet 7. desember 2007 (endret) Hei! Jeg jobber med en SMS-tjeneste og trenger hjelp med å filtrere ut teksten. Sluttbruker kan sende inn forskjellige ting. Tjenesten opplyser om neste avgang for rutetrafikk. -- OSLO = Avreiseste (Kan være hva som helst) (OSLO er eksempel) BERGEN = Tilreisested (Kan være hva som helst) (BERGEN er eksempel) De to over må være med i meldingen. De følgende er tillegg. FØR 10.00 = Avreise før TT:MM (Kan være klokkeslett) (10.00 er eksempel) ETTER 11.00 = Avreise etter TT:MM (Kan være klokkeslett) (11.00 er eksempel) DAG FREDAG = Avreisedag (Kan være ukedag) (FREDAG er eksempel) DATO 07.12.2007 = Avreisedato (Kan være dato) (07.12.2007 er eksempel) Hvis det f.eks står FØR, men ingen klokkeslett etterpå, skal det ikke telles med. Eksempel, hvis ALLE koder har blitt med: OSLO BERGEN FØR 10.00 ETTER 11.00 DAG FREDAG DATO 07.12.2007 Hvis det er lettere kan jeg også komma være med, mellom kodene: OSLO BERGEN, FØR 10.00, ETTER 11.00, DAG FREDAG, DATO 07.12.2007 Hvordan kan jeg få hver og en av disse til å bli variabler? Endret 7. desember 2007 av Quattro7 Lenke til kommentar
magikern Skrevet 7. desember 2007 Del Skrevet 7. desember 2007 (endret) hvis du kan fjerne alt utenom akkurat verdiene blir det ganske greit: (med f.eks komma separering må du først kjøre explode(",",$str); og så etterpå explode(" ",$str); på hver av verdiene du får fra første explode) (PS: skrevet i full fart og ikke testet) <?php $str = "OSLO BERGEN 10.00 11.00 FREDAG 07.12.2007"; $arr = explode(" ",$str); switch(count($arr)) { case 6: list($from,$to,$before,$after,$day,$date)=$arr; break; case 5: list($from,$to,$before,$after,$day)=$arr; break; case 4: list($from,$to,$before,$after)=$arr; break; case 3: list($from,$to,$before)=$arr; break; case 2: list($from,$to,$before)=$arr; break; case 1: case 0: default: die("not enough values"); break; } ?> tja, finnes sikkert en enklere måte også, men tror dette skal fungere greit nok. Endret 7. desember 2007 av magikern Lenke til kommentar
Quattro7 Skrevet 7. desember 2007 Forfatter Del Skrevet 7. desember 2007 (endret) Jeg må nok ha FØR, ETTER osv også... Endret 7. desember 2007 av Quattro7 Lenke til kommentar
itsmebth Skrevet 7. desember 2007 Del Skrevet 7. desember 2007 Regexp? /(.+?) (.+?)(.+? .+?,?)*/ Utestet, men den burde virke. http://no.php.net/manual/en/function.preg-match.php Lenke til kommentar
Peter Skrevet 8. desember 2007 Del Skrevet 8. desember 2007 Hei! Jeg jobber med en SMS-tjeneste og trenger hjelp med å filtrere ut teksten. Sluttbruker kan sende inn forskjellige ting. Tjenesten opplyser om neste avgang for rutetrafikk. -- OSLO = Avreiseste (Kan være hva som helst) (OSLO er eksempel) BERGEN = Tilreisested (Kan være hva som helst) (BERGEN er eksempel) De to over må være med i meldingen. De følgende er tillegg. FØR 10.00 = Avreise før TT:MM (Kan være klokkeslett) (10.00 er eksempel) ETTER 11.00 = Avreise etter TT:MM (Kan være klokkeslett) (11.00 er eksempel) DAG FREDAG = Avreisedag (Kan være ukedag) (FREDAG er eksempel) DATO 07.12.2007 = Avreisedato (Kan være dato) (07.12.2007 er eksempel) Hvis det f.eks står FØR, men ingen klokkeslett etterpå, skal det ikke telles med. Eksempel, hvis ALLE koder har blitt med: OSLO BERGEN FØR 10.00 ETTER 11.00 DAG FREDAG DATO 07.12.2007 Hvis det er lettere kan jeg også komma være med, mellom kodene: OSLO BERGEN, FØR 10.00, ETTER 11.00, DAG FREDAG, DATO 07.12.2007 Hvordan kan jeg få hver og en av disse til å bli variabler? Er det ikke overkill å bruke både "DAG FREDAG" og "DATO ...."? Datoen impliserer jo dagen. @itsmebth: Synes vel den der var litt vel naiv? Skal man først bruke regex, burde man bruke det for alt det er verdt, f.eks. matche tall der det er påkrevd. Lenke til kommentar
Quattro7 Skrevet 8. desember 2007 Forfatter Del Skrevet 8. desember 2007 Det er ikke sånn at alle må brukes. Rutetabellen endres innimellom, så jeg tok inn dato også, for søk langt frem i tid. DAG er rutene for en ukedag. Lenke til kommentar
itsmebth Skrevet 9. desember 2007 Del Skrevet 9. desember 2007 @itsmebth:Synes vel den der var litt vel naiv? Skal man først bruke regex, burde man bruke det for alt det er verdt, f.eks. matche tall der det er påkrevd. Sist jeg sjekket var ikke "FREDAG" et tall... Den kan jo gjøres lengre og matche en av ukedagene eller en dato i tillegg, men jeg ville holde den kort. Lenke til kommentar
Peter Skrevet 9. desember 2007 Del Skrevet 9. desember 2007 @itsmebth:Synes vel den der var litt vel naiv? Skal man først bruke regex, burde man bruke det for alt det er verdt, f.eks. matche tall der det er påkrevd. Sist jeg sjekket var ikke "FREDAG" et tall... Den kan jo gjøres lengre og matche en av ukedagene eller en dato i tillegg, men jeg ville holde den kort. Og hvor påstår jeg at fredag er et tall? Alle tidspunktene burde være tall samt datoen. (Hvis den er med) Lenke til kommentar
Quattro7 Skrevet 9. desember 2007 Forfatter Del Skrevet 9. desember 2007 I databasen ligger rutene lagret med tall fra 1 til 7 på dag. Fredag blir da oversatt til 5 f.eks 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å