Inlezen json informatie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frank Bos

Frank Bos

16/01/2020 17:06:16
Quote Anchor link
Hi,

Ik lees informatie in vanuit een internet adres. Het totaal aantal items zijn meer dan 550000 onderverdeeld over 28 duizend pagina's

Ik start met het lezen van de website en haal het aantal records op. ik bereken het aantal pagina's en maak een for lus om de pagina's een voor een op te vragen.

maar volgens mij gaat php al die pagina's laden bij het starten mijn code. omdat het zoveel is, gaat dit niet lukken binnen een bepaalde periode.

is er een manier om PHP te zeggen dat er eerst pagina 1 laad en dan de volgende. kan ik dit met een functie oplossen ofzo?

Wellicht is het niet helemaal duidelijk, zal even de source laten zien:


$openbareruimte=json_decode(file_get_contents('https://api.data.xxxxxx.nl/object/'));


//echo $openbareruimte->count;
$int = intval($openbareruimte->count);
$pages = floor($int / 25);
//echo $pages;

for( $page = 1 ; $page <= $paged ; $page++ ){
$link = 'https://api.data.xxxxxxx.nl/object/?page='.$page;

echo $link;
echo '<br>';
$objects = json_decode(file_get_contents("$link"));

foreach($objects->results as $object) {
echo $object->id;
}
}
 
PHP hulp

PHP hulp

28/01/2020 23:54:31
 
Michael -

Michael -

16/01/2020 17:27:23
Quote Anchor link
Plaats je code even tussen code-tags ([code­][/code­])

Tuurlijk kan dat, door bijv nog een lus te maken met het aantal pagina's, maar dit zal uiteindelijk toch een timeout gaan geven en nooit werken in de browser.

Je zult dit rechtstreeks op de server (evt met een cronjob) moeten uitvoeren en dan nog zal ik een variabele meegeven zodat je bijv eerst pagina 1 t/m 1000 (afhankelijk van de data) enz uitvoert. Anders is dit gewoon veel te veel. Dit zou je dan kunnen automatiseren dat ie nadat ie klaar is pagina 1001 t/m 2000 gaat uitvoeren.
Gewijzigd op 16/01/2020 17:53:59 door Michael -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.