Ik ben bezig met een toto script en als extra'tje lijkt het me leuk om alle voorgaande duels van teams te laten tonen bij de statistieken van een wedstrijd. Aangezien ik een html bestand met daarin alle gespeelde wedstrijden in de eredivisie heb, maar ik ze nog niet in de database heb wil ik vragen of iemand weet hoe ik de gegevens netjes in een array krijg?
Waarschijnlijk moet ik met strip werken ofzo? Ik weet niet precies hoe kan iemand me misschien helpen?
Het in de database krijgen is het probleem eigenlijk niet. Ik wil eigenlijk weten hoe ik het in een nette array krijg?
nou ik heb het dus niet in de database daar wil ik het inkrijgen. Maar ik moet dus alles tussen de <td> </td> filteren en netjes in een array zetten voor het in de database gaat.
Ik dacht dat de functie 'strip' heette.. maar ik kan me vergissen? Hoe kan ik het er wel tussen uit krijgen?
Je zal met explode misschien iets kunnen maken, maar ik weet eigenlijk niet of er andere functies voor zijn die makkelijker zijn. Denk haast van wel.
Maar niet om het een of ander: het is netter als je die waarden in de database stopt zonder de html-tags <td> en </td>, zodat je ze net zo in de database krijgt als in je array. Als je het dan uit de database haalt, kan je de tags er weer omheen zetten.
Maar niet om het een of ander: het is netter als je die waarden in de database stopt zonder de html-tags <td> en </td>, zodat je ze net zo in de database krijgt als in je array. Als je het dan uit de database haalt, kan je de tags er weer omheen zetten.
Dat is ook wat ik wil.. Eerst alles filteren (dus de <td> en <tr> weg halen en dan alles in aparte variabele zetten. En tenslot dan alles toevoegen aan de database
Door deze code te gebruiken:
<?php
$string = '
<tr><td>2006-2007</td><td>2006-09-10</td><td>Ajax</td><td>Vitesse</td><td>3</td><td>0</td></tr>
<tr><td>2006-2007</td><td>2006-09-10</td><td>FC Groningen</td><td>Heracles Almelo</td><td>2</td><td>1</td></tr>
<tr><td>2006-2007</td><td>2006-09-10</td><td>FC Utrecht</td><td>RKC Waalwijk</td><td>5</td><td>0</td></tr>
<tr><td>2006-2007</td><td>2006-09-10</td><td>NEC</td><td>AZ</td><td>0</td><td>2</td></tr>
<tr><td>2006-2007</td><td>2006-09-10</td><td>Sparta Rotterdam</td><td>Feyenoord</td><td>1</td><td>4</td></tr>
';
preg_match_all('_\<tr\>\<td\>(.*?)\<\/td\>\<td\>(.*?)\<\/td\>\<td\>(.*?)\<\/td\>\<td\>(.*?)\<\/td\>\<td\>(.*?)\<\/td\>\<td\>(.*?)\<\/td\>\<\/tr\>_si',$string,$matched);
echo '<pre>';
print_r($matched);
?>
Je kan op met $matched dus de database vullen $matched[1] is een array met de seizoenen. $matched[2] een array met de datums.
Dmv van [php]foreach[/php]() kan je dan alles wel netjes in je tabel stoppen denk ik.
Edit
Een mogelijke andere manier:
Ipv preg_match_all gewoon preg_match, maar dan moet je wel eerst alle lijnen exploden per regel. Dus:
<?php
$tekst = file_get_contents('file.html');
$lines = explode("\r\n",$tekst);
$all_matches = array();
foreach($lines as $line)
{
preg_match('_\<tr\>\<td\>(.*?)\<\/td\>\<td\>(.*?)\<\/td\>\<td\>(.*?)\<\/td\>\<td\>(.*?)\<\/td\>\<td\>(.*?)\<\/td\>\<td\>(.*?)\<\/td\>\<\/tr\>_si',$line,$matched);
$all_matches[] = $matched;
}
print_r($all_matches);
?>
Dit heb ik niet getest, dus weet niet of dit bug-free is.