Ik ben bezig met het maken van php die de spotprijzen van zilver en goud uit een website kan parsen. Om vervolgens weer andere berekeningen op los te laten.
Ik ben geen programmeur en ben eigenlijk pas twee dagen met php bezig maar dit leek mij te lukken. Helaas past de indeling van de site zich wel eens aan (soms komt er een entertje bij) dus mijn script is niet slim genoeg.
Wat lukt me tot nu toe:
-http://www.kitco.com/texten/texten.html parsen en per woord in een array zetten (mbv PHP Simple HTML DOM Parser).
(echo van de array zie: echo array).
-Een een variabele maken; hier een string van het betreffende arraynummer inzetten.
Probleem is dus dat dit arraynummer wel eens van verschillen en mijn programma dan niet meer werkt (moet dan weer nieuw arraynummer invoeren). Ik heb de oplossing nu als volgt in mijn hoofd:
>Zoek het woord "Silver" (hoofdletter gevoelig als het kan, anders is het derde woord silver) in de array, geef het arraynummer hiervan.
>Doe dit nummer + 16 geeft deze output.
Kunnen jullie mij helpen met mijn zoektocht? Met welke functie kan ik zoeken naar een string in een array?
Mocht mijn methode compleet verkeerd of niet robuust zijn hoor ik dit ook graag. Graag hoor ik dan wel tips over hoe ik dit beter zou kunnen aanpakken. Mijn kennis van php is miniem, maar als jullie zeggen welke functies handig zijn vind ik het wel uit. Probleem bij het parsen van een site is deze kan veranderen, en hier wil ik me zoveel mogelijk tegen wapenen.
Ik ben geen programmeur en ben eigenlijk pas twee dagen met php bezig maar dit leek mij te lukken. Helaas past de indeling van de site zich wel eens aan (soms komt er een entertje bij) dus mijn script is niet slim genoeg.
Wat lukt me tot nu toe:
-http://www.kitco.com/texten/texten.html parsen en per woord in een array zetten (mbv PHP Simple HTML DOM Parser).
(echo van de array zie: echo array).
-Een een variabele maken; hier een string van het betreffende arraynummer inzetten.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <?php # create and load the HTML include('simple_html_dom.php'); $html = new simple_html_dom(); $html->load_file('http://www.kitco.com/texten/texten.html'); $e = $html->find("pre",0); //return 0 if not found //ik zoek naar de pre tag omdat dit de laatste tag is voor de prijzen. $alletextstring=$e->plaintext; $alletextarray= explode(" ",$alletextstring); echo '<pre>' . print_r($alletextarray, true) . '</pre>'; $spotgoudtext=$alletextarray[328]; $spotzilvertext=$alletextarray[358]; echo "Spotprijs goud:<b> $spotgoudtext</b></br>"; echo "Spotprijs zilver:<b> $spotzilvertext</b></br>"; echo "De wisselkoers USD/EUR:<b> $wisselkoers</b></br>"; ?> |
Probleem is dus dat dit arraynummer wel eens van verschillen en mijn programma dan niet meer werkt (moet dan weer nieuw arraynummer invoeren). Ik heb de oplossing nu als volgt in mijn hoofd:
>Zoek het woord "Silver" (hoofdletter gevoelig als het kan, anders is het derde woord silver) in de array, geef het arraynummer hiervan.
>Doe dit nummer + 16 geeft deze output.
Kunnen jullie mij helpen met mijn zoektocht? Met welke functie kan ik zoeken naar een string in een array?
Mocht mijn methode compleet verkeerd of niet robuust zijn hoor ik dit ook graag. Graag hoor ik dan wel tips over hoe ik dit beter zou kunnen aanpakken. Mijn kennis van php is miniem, maar als jullie zeggen welke functies handig zijn vind ik het wel uit. Probleem bij het parsen van een site is deze kan veranderen, en hier wil ik me zoveel mogelijk tegen wapenen.