[php] zoeken naar een string in een array

Pagina: 1
Acties:
  • 227 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Wizzing
  • Registratie: Oktober 2000
  • Laatst online: 27-05 11:19
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.

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.

Acties:
  • 0 Henk 'm!

Verwijderd

array_search?
op php.net vindt je dit soort info.

Ook zo kun je die info vinden:
http://lmgtfy.com/?q=array+search+php

[ Voor 81% gewijzigd door Verwijderd op 03-12-2010 14:00 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Wizzing schreef op vrijdag 03 december 2010 @ 13:56:
>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?
Je hebt het probleem al in pseudo-code opgelost? En je probleem is nu... :? Met de PHP documentatie moet je hier prima uit kunnen komen. Ik zie hier niet heel veel anders in dan een scriptrequest.

Verder is je oplossing niet erg robuust, maar gegeven de info die we hebben (en welke info al dan niet beschikbaar is in welk formaat bij je "leverancier" van die data) kunnen we verder niet erg veel zinnig(er)s zeggen dan dat.

[ Voor 16% gewijzigd door RobIII op 03-12-2010 14:11 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.