webForumDet fria alternativet

output från skript efter hand?

12 svar · 451 visningar · startad av greymane

greymaneMedlem sedan juli 2001711 inlägg
#1

Finns det något sätt att skriva ut info från ett skript under tiden det exekveras? exempelvis skriva ut en ny siffra för varje varv en loop går.
jmfr system("traceroute webforum.nu"); - varje hopp visas med en gång på skärmen.

går det?

@ndersMedlem sedan juni 200032 969 inlägg
FuelMedlem sedan okt. 20001 285 inlägg
#3

ehh.. så här kanske man kan göra

<?
$loop = 1;
while (stuff)
{
	echo "Loop <strong>".$loop."</strong> klar!<br />";
	$loop++;
	sleep(3);
}
?>
greymaneMedlem sedan juli 2001711 inlägg
#4

flush ska jag titta på, den verkar vara vad jag letar efter. Inte helt lätt att förstå manualen där bara...

fuel:

Det där skriptet slutar ju aldrig :) den skriver inte ut nåt under tiden heller.

FuelMedlem sedan okt. 20001 285 inlägg
#5

tja.. det var bara ett snabbexempel .. klart det skriver ut nåt och bara så länge det är nåt som gäller i while satsen

såg just din system("traceroute..

greymaneMedlem sedan juli 2001711 inlägg
#6

nej den skriver inte ut efter hand. den skrev ut första 103 raderna tillsammans sen väntade den igen.

FuelMedlem sedan okt. 20001 285 inlägg
#7

hur ser din loop ut ?

greymaneMedlem sedan juli 2001711 inlägg
#8

jag kopierade din rakt av och testade...

greymaneMedlem sedan juli 2001711 inlägg
#9

jag begriper inte hur jag ska använda flush().. säg att jag har följande kod, var ska jag då sätta in flush() mm?

<?
funtion1();
echo "funktion 1 genomförd";
funktion2();
echo "funktion 2 genomförd";
funktion3();
echo "funktion 3 genomförd";
?>
greymaneMedlem sedan juli 2001711 inlägg
#10

ingen som vet och kan tänka sig att ge mig ett handtag?

jOOOLMedlem sedan sep. 200436 inlägg
#11

Om du ska använda flush så fungerar det så här (inte kodagrant men)

 

ob_start_flush

echo "en sak"
echo "sak 2"
if(2 = ") { ehco "hej"; }

end_fush

ska då skriva ut; en sak sak2 hej.
Allt på samma gång. Om det är inte är det du efterfrågar så ska du inte använda flush.
Det du kan göra är dock att du gör en flush på en del av sidan och sedan skriver ut den. Efter det kör du en ny flush på resten av sidan och skriver andra halvan på en gång. Exakt hur koden ska se ut vet jag ej

@ndersMedlem sedan juni 200032 969 inlägg
#12

greymane skrev:

ingen som vet och kan tänka sig att ge mig ett handtag?

Om du visar hur ditt försök ser ut och berättar på vilket sätt det inte fungerar finns det säkert någon som kan hjälpa dig.

greymaneMedlem sedan juli 2001711 inlägg
#13

jag hittade lösningen själv. Det var väldigt enkelt. Jag satte in flush(); efter det jag vill ha utskrivet. Alltså

echo "Hopp";
flush();
138 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)