Avatar billede tikki100 Nybegynder
13. juni 2011 - 19:54 Der er 9 kommentarer og
1 løsning

Ekstern Data fra Hjemmesider, oprydning

Hej alle jer på eksperten!

Jeg er i gang med at lave et regneark der skal kunne hente data fra en hjemmeside. Hjemmesiden er:

http://rscript.org/lookup.php?type=ge&search=longbow

Når jeg sætter det ind i excel kommer det til at se sådan her ud:

<pre>
START
RESULTS: 1
SEARCH TERMS: longbow
MULTIITEM: 0
DUPLICATES: 0
OUTDATED: 0
ITEM: 0 Longbow 0 ---50--- 0 -2 +35.1 129 25 -4 6 11 15 10 44
IID: 839
END

Jeg skal bruge det stykke data hvor der står 50 (Markeret med ---50----) og da dette vil skifte kan jeg ikke bruge "FIND" kommandoen.

Hvordan fjerner jeg alt det overskydende data, så jeg står tilbage med de 50?

Tikki100 :-)
Avatar billede natkatten Mester
13. juni 2011 - 20:15 #1
Om tallet "50" skifter er ligegyldigt. Men skilletegnene er vigtige: Er disse altid "---" eller afhænger dette af hvilet tal, der står? For at få en funktion til at fungere, skal der være en form for systematik.
Avatar billede coderdk Praktikant
13. juni 2011 - 20:40 #2
F.eks.

$cnt = file_get_contents( "http://rscript.org/lookup.php?type=ge&search=longbow" );
if ( preg_match( "/--(\d+)--/", $cnt, $m ) )
{
    echo "Fandt " . $m[1];
}
Avatar billede tikki100 Nybegynder
13. juni 2011 - 22:32 #3
Jeg har ikke styr på deres hjemmeside, og kan derfor ikke putte ind små koder php (Hvis det da er php :D)

Jeg har lavet --- tegnene for at markere at det er 50 jeg skal bruge. Undskylder hvis det har forvirret nogle.
Avatar billede coderdk Praktikant
14. juni 2011 - 01:08 #4
Prøv

$cnt = file_get_contents( "http://rscript.org/ (...) );
if ( preg_match( "/ITEM:\s+\d+\s+[a-z0-9]+\s+\d+\s+(\d+)\s+/", $cnt, $m ) )
{
    echo "Fandt " . $m[1];
}
Avatar billede coderdk Praktikant
14. juni 2011 - 01:09 #5
Mjah, ret URL - eksperten fucker det op :)
Avatar billede tikki100 Nybegynder
14. juni 2011 - 13:39 #6
<?

$cnt = file_get_contents( "http://rscript.org/lookup.php?type=ge&search=longbow" );
if ( preg_match( "/ITEM:\s+\d+\s+[a-z0-9]+\s+\d+\s+(\d+)\s+/", $cnt, $m ) )
{
    echo "Fandt " . $m[1];
}
else
{
echo "Anden besked";
}

?>

prøvede at sætte koden herover ind på en side, men ser ikke ud til at virke.

http://tikki100.host22.com/test.php
Avatar billede coderdk Praktikant
14. juni 2011 - 14:04 #7
Prøv lige at ændre

if ( preg_match( "/ITEM:\s+\d+\s+[a-z0-9]+\s+\d+\s+(\d+)\s+/", $cnt, $m ) )

til

if ( preg_match( "/ITEM:\s+\d+\s+[a-z0-9]+\s+\d+\s+(\d+)\s+/i", $cnt, $m ) )
Avatar billede tikki100 Nybegynder
14. juni 2011 - 16:03 #8
Mange tak! Det virker som det skal :-)
Avatar billede tikki100 Nybegynder
14. juni 2011 - 16:10 #9
Jov, et hurtigt spørgsmål til.

Hvis jeg ændrede URL'en til

http://rscript.org/lookup.php?type=ge&search=bronze%20bar

Så siger den "Anden Besked" men hvis jeg ændre det til

http://rscript.org/lookup.php?type=ge&search=shortbow

Virker det fint. Nogen fix for det :)?
Avatar billede coderdk Praktikant
14. juni 2011 - 16:13 #10
Yes, ændr

if ( preg_match( "/ITEM:\s+\d+\s+[a-z0-9]+\s+\d+\s+(\d+)\s+/i", $cnt, $m ) )

til

if ( preg_match( "/ITEM:\s+\d+\s+[^ ]+\s+\d+\s+(\d+)\s+/i", $cnt, $m ) )


:)
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 har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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