php.hr

PHP & MySQL => PHP => Autor teme: fichek - 25.07.2009., 14:08



Naslov: Izvrsavanje skripte nakon zavrsavanja outputa
Autor: fichek - 25.07.2009., 14:08
Je li ikako moguce javiti korisnikovom browseru da je ispis podataka gotov tako da se u browseru prestane vrtit onaj kruzic (il kako vec koji browser oznacava aktivnost), a da se skripta nastavi izvrsavat?

Imam jedan komad koda cije izvrsavanje moze potrajat nekoliko sekundi, a output je potpuno nebitan korisniku pa se ni ne ispisuje, tako da browser uzalud prikazuje aktivnost i to mi malo smeta.

Ili mozda imate neku zaobilaznu ideju kako to rijesit? Kod koji se izvrsava prima 3 varijable s pretkodne stranice preko html forme.


Naslov: Odg: Izvrsavanje skripte nakon zavrsavanja outputa
Autor: fichek - 25.07.2009., 21:32
Eto pomocu twitter korisnika zsteva sam naso rjesenje pa da odgovorim sam sebi :)

system("php -f test.php arg1 arg2 arg3 arg4 > /dev/null 2>&1 < /dev/null &");

Ovo poziva skriptu s argumentima arg1-arg4 u pozadini i sav moguci output (kojeg ni nema) preusmjerava u /dev/null

Radi naravno samo na unixoidnim serverima, a arg1-arg4 treba zamijenit s vrijednostima koje se zele prosljedit (i pri tome posebno pazit sta se prosljeduje kao i uvijek). Pristupa im se iz pozvanog filea s arrayem argv u kojem je nulto polje ime filea, a svako sljedece su redom vrijednosti argumenata.

Al malo prije sam otkrio jos jedno rjesenje koje je tolko nevjerojatno jednostavno da znam da nesto ne stima s njime :))

Korisnika se preusmjeti s header('location:'.$url); i onda se izvrsava spori kod nakon toga.


php.hr | Powered by SMF 1.1.13. © 2005, Simple Machines LLC. All Rights Reserved.