Avatar billede Slettet bruger
23. februar 2010 - 00:12 Der er 16 kommentarer og
1 løsning

Lectio Parsing

Hej alle.

Jeg vil gerne have noget hjælp til at lave et lille system som parser et skoleskema på Macoms Lektieportal, Lectio.

Den skulle gerne hente fag, lærer og lokale.

Hvis i kigger her (fundet tilfældigt på Lectio): http://www.lectio.dk/lectio/228/SkemaGenerator.aspx?type=elev&id=1911544037

1ax Ty    -    SP        -    8
Fag        -    Lærer      -    Lokale

Den skulle også gerne tage højde for aflyst time, og her skal den stadig skrive timen med, men blot med en parentes: (aflyst) f.eks.

Jeg håber at der er nogen der kan hjælpe til med at lave sådan en funktion. Der ligger allerede én her på Eksperten, men den er efterhånden så outdated at den ikke virker længere, og den udspytter også nogle fejl.
Avatar billede Slettet bruger
23. februar 2010 - 00:18 #1
Har du nogen erfaring med PHP, eller leder du efter et færdigt script?
1) http://www.phpartikler.dk/artikler/regexp.php og http://www.php.net/manual/en/book.pcre.php
2) Hiv pungen frem og opret et spørgsmål her
Avatar billede Slettet bruger
23. februar 2010 - 01:27 #2
Har da noget erfaring. :)
Avatar billede repox Seniormester
23. februar 2010 - 08:21 #3
#2
Det som vi egentlig gerne vil vide er, hvor langt du selv er kommet og hvad du regner med du skal have af hjælp.

Det er lidt omsonst at spørge om der er nogen her på forummet der kan finde ud af at lave det du efterspørger - sandsynligheden for at der er det, er relativt stor.

Som #1 skriver, så må du enten selv komme med et udspil til hvor langt du er kommet med dine egne forsøg og specificere hvor du er stødt på problemer - eller også må du hive lommelæderet frem og så kan du få en færdig løsning til implementering ved at skrive og spørge i den rette kategori.
Avatar billede Slettet bruger
23. februar 2010 - 18:24 #4
Hvis den her var i orden kunne du også XML-parse det, men du kan jo altid prøve.
Avatar billede Slettet bruger
23. februar 2010 - 21:34 #5
Kimsey -> Jeg kan ikke rigtigt gennemskue hvordan jeg skulle kunne bruge W3?

Repox -> Det lykkeds mig at parse mandag, men det var også det eneste jeg kunne komme frem til. Men det var ikke noget smukt kode, og som sagt kunne jeg kun få mandag. Derudover er koden desværre forsvundet da min hjemmesider besluttede at dø på et tidspunkt.
Avatar billede repox Seniormester
23. februar 2010 - 21:45 #6
Har du overvejet at spørge Lectio om de stiller/vil stille en webservice til rådighed for indlæsning af skemaerne?
Det skader jo ikke at spørge - særligt ikke hvis du har tilladelse til at gengive dataene.
Avatar billede Slettet bruger
23. februar 2010 - 21:46 #7
Repox -> Ja det har jeg. Det er nu over et halvt år siden at de lovede at fikse noget, og endnu er intet sket.
Avatar billede repox Seniormester
23. februar 2010 - 21:54 #8
Problemet er at det er svært at tage højde for den måde skemaet kan ændre sig på.
Du får sandsynligvis kun at halvt virkende script ved at forsøge dig med forskellige regexp's. og da (som kimsey0 også gør opmærksom på) sitet ikke overholder W3C standarderne, kan det også være svært at lave noget mere simpelt som ellers skulle kunne virke.
Altså, med andre ord - denne opgave er meget sværd. Du får ikke nogen herinde til at lave den for dig; det er for omfattende og der er ingen garanti for at du får et script som virker hver gang.
Brug hellere din energi på at få sat skub i den webservice.
Avatar billede Slettet bruger
23. februar 2010 - 22:48 #9
/enig, *enig* og "enig"
Avatar billede Slettet bruger
23. februar 2010 - 23:01 #10
Hej.

Lige et nyt hurtigt spørgsmål:

1. modul08:00-09:00<br />
1ax Ty - SP - 8<br />
1a ma-ES-34<br />
1a sa - ET - 7<br />
1a ke - NW - KEM<br />
1a ke - NW - KEM<BR><BR>

Array
(
    [1ax Ty] => Array
        (
            [0] => SP
            [1] => 8
        )

    [1a ma] => Array
        (
            [0] => ES
            [1] => 34
        )

Og så videre selvfølgeligt.
Avatar billede repox Seniormester
23. februar 2010 - 23:14 #11
Hvad er spørgsmålet?
Avatar billede Slettet bruger
23. februar 2010 - 23:16 #12
Hvordan jeg putter den øverste tekst ind i sådan et array, automatisk. :)

Så hvis jeg har $string = "1. modul08:00-09:00<br />
1ax Ty - SP - 8<br />
1a ma-ES-34<br />
1a sa - ET - 7<br />
1a ke - NW - KEM<br />
1a ke - NW - KEM<BR><BR>";

og den skal så ind i sådan et array, som du kan se ovenstående.

1ax Ty    -    SP        -    8
Fag        -    Lærer      -    Lokale

Hvor du kan se at fag er den første, og så kommer grenen lærer, og så yderligere en gren for lokale.

Array
(
    [1ax Ty] => Array
        (
            [0] => SP
            [1] => 8
        )

    [1a ma] => Array
        (
            [0] => ES
            [1] => 34
)

Den skal så selvfølgelig fortsætte til der ikke er flere linjer.
Avatar billede Slettet bruger
24. februar 2010 - 01:32 #13
Funktionen $array = explode(' - ', $html); kan nok gøre arbejded for dig.
http://php.net/manual/en/function.explode.php
Avatar billede Slettet bruger
24. februar 2010 - 01:37 #14
Jep, har fundet ud af det. :)
Avatar billede Slettet bruger
24. februar 2010 - 11:23 #15
Er vi så færdige her?
Avatar billede Slettet bruger
24. februar 2010 - 17:00 #16
Det er vi desværre. :(

Alle som deltog smid nogle svar, så vi kan få delt pointene ud, som tak for hjælpen. :)
Avatar billede Slettet bruger
24. februar 2010 - 23:27 #17
Desværre?
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





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis