stap voor stap weergeven statusmeldingen bij php script
Ik heb te maken met een PHP script dat XML data downloadt van een website, dit omzet naar tabellen in MySQL, conversies uitvoert, etc.. Al met al duurt het script ongeveer een half uur. Op zich is dat een normale tijd, gezien alle stappen en de verwerkte data.
Af en toe ontstaat er een fout bij het gebruik (bv. internetstoring, fout in gedownloade bestand). Het script bevat bij iedere stap statusmeldingen via <echo "blablabla" >;, maar deze worden pas getoond wanneer alles klaar is (alle stappen). Is er een fout, dan komen de statusmeldingen niet in beeld.
Is er een eenvoudige manier om de statusmeldingen ook stap voor stap weer te geven, zodat we veel meer real time kunnen monitoren hoe het proces verloopt.
Groeten, Gerrit
Af en toe ontstaat er een fout bij het gebruik (bv. internetstoring, fout in gedownloade bestand). Het script bevat bij iedere stap statusmeldingen via <echo "blablabla" >;, maar deze worden pas getoond wanneer alles klaar is (alle stappen). Is er een fout, dan komen de statusmeldingen niet in beeld.
Is er een eenvoudige manier om de statusmeldingen ook stap voor stap weer te geven, zodat we veel meer real time kunnen monitoren hoe het proces verloopt.
Groeten, Gerrit
Gewijzigd op 14/07/2011 11:58:57 door Gerrit broekhuis
Wellicht met het gebruik van AJAX? Dat je de stappen met AJAX controleert en verifeerd. Ik weet niet hoe gemakkelijk dat gaat met AJAX; ik heb dat nog nooit zelf gedaan. Enige dat ik weet is dat AJAX redelijk real-time kan werken.
Wat je ook kunt doen en vrij simpel is, is het bijhouden van een log file. Als er een stap klaar is, of mislukt is, gewoon een fwrite in een process.log.
Ik wil het eigenlijk real time kunnen zien. Logfile moet je toch weer openen. Met Ajax heb ik ook geen ervaring.
Groeten, Gerrit
Groeten, Gerrit
flush().
Ik heb opnieuw gekeken naar flush, maar krijg dit wederom niet aan de praat, ook niet in een voorbeeldscript. Alle output wordt pas getoond wanneer het script helemaal klaar is.
Enig idee wat er fout gaat?
Groeten, Gerrit
Code (php)
Enig idee wat er fout gaat?
Groeten, Gerrit
Dit doet het regel voor regel:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
for($i=0;$i<10;$i++)
{
echo str_repeat(" ", 5000), 'testregel... ', $i, '<br />';
flush();
usleep(300000);
}
?>
for($i=0;$i<10;$i++)
{
echo str_repeat(" ", 5000), 'testregel... ', $i, '<br />';
flush();
usleep(300000);
}
?>
Ik heb de buffering in php.ini uitgezet. Dan werkt het wel.
Groeten, Gerrit
Groeten, Gerrit




