Gå til innhold

Filtrere innhold i tekst


Anbefalte innlegg

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 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 av Quattro7
Lenke til kommentar
Videoannonse
Annonse

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 av magikern
Lenke til kommentar
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 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
@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
@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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...