Ik ben nog relatief onervaren op het gebied van PHP, dus bij voorbaat excuses als ik domme vragen stel. :)
Ik ben bezig met een scriptje voor het binnenhalen van files op wegen in Nederland vanuit een xml-feed.
Zie onder. Het werkt zoals ik wil.
<?php
$url = "http://xml.fileindex.nl/";
$data = simplexml_load_file($url);
$aantalFiles = count($data->filedata->meldingen->melding);
$fileSamenvatting = $data->filedata->samenvatting;
$weg = $data->filedata->meldingen->melding->wegnr;
echo "Een overzicht van de actuele files in Nederland:";
echo "<br />";
echo $fileSamenvatting->tekst . "<br />";
for($i = 0; $i < $aantalFiles; $i++) {
$fileMelding = $data->filedata->meldingen->melding[$i];
echo "<font color='red'><mark> $fileMelding->wegnr </mark></font>";
echo " van " . $fileMelding->van . " richting " . $fileMelding->naar . "<br />";
echo round($fileMelding->afstand) . " km (HMP " . $fileMelding->hectostart . " → HMP " . $fileMelding->hectoeind . ")<br />";
echo "<br /><br />";
}
?>Nu probeerde ik middels onderstaande te filteren op bepaalde wegen in Nederland. Maar als output krijg ik hier alleen de eerst genoemde file op die weg. Als het er meerdere zijn, wordt dus alleen de eerste getoond.
<?php
$url = "http://xml.fileindex.nl/";
$data = simplexml_load_file($url);
$aantalFiles = count($data->filedata->meldingen->melding);
$fileSamenvatting = $data->filedata->samenvatting;
$weg = $data->filedata->meldingen->melding->wegnr;
echo "Een overzicht van de actuele files in Nederland:";
echo "<br />";
echo $fileSamenvatting->tekst . "<br />";
if ($weg = "A1") {
$fileMelding = $data->filedata->meldingen->melding;
echo "<font color='red'><mark> $fileMelding->wegnr </mark></font>";
echo " van " . $fileMelding->van . " richting " . $fileMelding->naar . "<br />";
echo round($fileMelding->afstand) . " km (HMP " . $fileMelding->hectostart . " → HMP " . $fileMelding->hectoeind . ")<br />";
echo "<br /><br />";
}
?>
Is het gebruik van IF hier überhaubt wel op zijn plaats? Of kan ik beter met FOR gaan proberen?
Nogmaals, het gaat hier om basiskennis, maar kan wel een zetje in de juiste richting gebruiken :) thanks!