Heb van ie een scriptje die verschillende html tags kan uitlezen. Nu is het probleem dat dit script slechts 1 div uitleest terwijl er 40 op de pagina staan. Ik krijg dan ook als resultaat het eerst voorkomende divje op de pagina. Wie weet hoe ik ze alle 40 kan weergeven?

<?php

$ch = curl_init ("http://www.top40.nl/top40";);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($ch);

preg_match('#<div class="title"[^>]*>(.+?)</div>#is', $page, $matches);
foreach ($matches as &$match) {
$match = $match;
}
echo '<div class="title">';
echo $matches[1];
echo '</div>';

?>
PREG_MATCH_ALL
Bedankt, alleen had ik dit al geprobeerd. Enige wat ik dan krijg te zien is 'array'
Doe eens var_dump($matches);

en wat is dat bij jij op regel 8, 9 en 10??? Gaaaar.....
Eddy Erkelens op 28/05/2012 18:50:22

Doe eens var_dump($matches);

en wat is dat bij jij op regel 8, 9 en 10??? Gaaaar.....


Heb m.b.v print opgelost. Alleen nu krijg ik - net zoals jouw var_dump methode - een opsomming van arrays. (zie http://d-2.nl/). Daarnaast is het ook de bedoeling dat ik alleen de titel krijg te zien. Iemand nog ideeën?

<?php

$ch = curl_init ("http://www.top40.nl/top40";);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($ch);

preg_match_all('#<div class="title"[^>]*>(.+?)</div>#is', $page, $matches);
foreach ($matches as &$match) {
$match = $match;
}
print_r($matches);

?>
Met andere woorden, je weet niet hoe je met arrays moet werken. Het idee wat ik dus heb is dat je je in arrays moet gaan verdiepen, want alle info die je wilt heb je al.

[size=xsmall]Toevoeging op 28/05/2012 19:37:34:[/size]

En wat heeft dit voor zin:
<?php
foreach ($matches as &$match) {
$match = $match;
}
?>
Erwin H op 28/05/2012 19:34:53

Met andere woorden, je weet niet hoe je met arrays moet werken. Het idee wat ik dus heb is dat je je in arrays moet gaan verdiepen, want alle info die je wilt heb je al.

[size=xsmall]Toevoeging op 28/05/2012 19:37:34:[/size]

En wat heeft dit voor zin:
<?php
foreach ($matches as &$match) {
$match = $match;
}
?>


Lijkt mij inderdaad handig om hier meer over te leren.. De foreach heb ik er tussen uit gevist omdat deze nu overbodig is. Helaas jammer dat de gegevens via print_r moeten worden aangeroepen, kan er weinig mee.
print_r is alleen een manier om data structuren (als arrays) te printen, in plaats van echo. Het aanroepen van de gegevens doe je door het als een array aan te roepen.... dus, verdiep je in arrays en dan is het helemaal niet zo moeilijk.
Erwin H op 28/05/2012 20:18:22

print_r is alleen een manier om data structuren (als arrays) te printen, in plaats van echo. Het aanroepen van de gegevens doe je door het als een array aan te roepen.... dus, verdiep je in arrays en dan is het helemaal niet zo moeilijk.


Zal ik doen. Bedankt voor de reacties!
Wil je zeggen dat het zo ook niet werkt?


<?php

$ch = curl_init ("http://www.top40.nl/top40");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($ch);

preg_match_all('#<div class="title"[^>]*>(.+?)</div>#is', $page, $matches);
foreach ($matches as $match) {

echo '<div class="title">';
    echo $match;
echo '</div>';
}
?>

Reageren