stap voor stap weergeven statusmeldingen bij php script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gerrit broekhuis

gerrit broekhuis

14/07/2011 11:58:32
Quote Anchor link
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
Gewijzigd op 14/07/2011 11:58:57 door Gerrit broekhuis
 
PHP hulp

PHP hulp

24/11/2024 04:12:21
 
Kevin Ellen

Kevin Ellen

14/07/2011 12:15:41
Quote Anchor link
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.
 
B a s
Beheerder

B a s

14/07/2011 12:25:23
Quote Anchor link
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.
 
Gerrit broekhuis

gerrit broekhuis

14/07/2011 12:29:48
Quote Anchor link
Ik wil het eigenlijk real time kunnen zien. Logfile moet je toch weer openen. Met Ajax heb ik ook geen ervaring.

Groeten, Gerrit
 
- SanThe -

- SanThe -

14/07/2011 12:34:10
Quote Anchor link
flush().
 
Gerrit broekhuis

gerrit broekhuis

14/07/2011 13:48:32
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
 ob_start();
 
for($i=0;$i<10;$i++)
 {

     echo str_repeat(" ", 256), 'testregel... ', $i, '<br />';
     ob_flush();
     flush();
     usleep(300000);
 }

?>


Enig idee wat er fout gaat?

Groeten, Gerrit
 
- SanThe -

- SanThe -

14/07/2011 16:04:17
Quote Anchor link
Dit doet het regel voor regel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
for($i=0;$i<10;$i++)
 {

     echo str_repeat(" ", 5000), 'testregel... ', $i, '<br />';
     flush();
     usleep(300000);
 }

?>
 
Gerrit broekhuis

gerrit broekhuis

14/07/2011 16:28:30
Quote Anchor link
Ik heb de buffering in php.ini uitgezet. Dan werkt het wel.

Groeten, Gerrit
 



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.