Citat:
Go! X:
Ovo ce prikazati tvoju sliku na stranici na kojoj se nalazi <img src="baner.php">, ako ovome dodas jedan name="baner" i iz JavaScript-a napravis funkciju koja menja sliku koristeci window.baner.src="baner.php", a timeout podesis na neku razumnu brojku, dobices upravo ono sto si trazio, zamenu banera bez ponovnog ucitavanja stranice.
Kao prvo ... ovo ne moze.
Ne moze zato shto ce se svaki put kada se reloaduje, uchitavati slika koju je PHP prvi put generisao.
A kao drugo, ono shto si predlagao da se sa fopen() i fread() chupa slika ili shto je Jbyn4e predlagao sa svim onim header funkcijama je nepotrebno.
Moze se lepo iskoristiti readfile funkcija koja kompletan fajl [sa sve headerom] ispisuje na STDOUT [kod PHPa browser jelte]
Tako da, evo scripta koja sakuplja sve fajlove iz zadatog direktorijuma i onda bira random sliku da je ispishe.
Code:
<?php
/*
small pic rotator v2
pReTeNdEr -
[email protected]
readfile() advise by FlatLine
$path - path to folder with images [for example $path = ""; or $path = "images/";]
*/
$path = "images/";
##################################
$file_list = array();
if ($dir = opendir($path)) {
while (false !== ($file = readdir($dir))) {
if ($file != "." && $file != "..") {
$file_list[] = $file;
}
}
closedir($dir);
}
mt_srand((double)microtime()*1000000);
$num = mt_rand(0, (count($file_list)-1));
$pic = $path . trim($file_list[$num]);
readfile($pic);
?>
To se normalno poziva sa <img src="ime_fajla.php">
Nije problem ni da se uradi da proverava da li ti fajlovi imaju gif, jpg i png extenziju, ali nisam to stavljao jer rachunam da se obichno samo banneri koji su za razmenu stave u taj direktorijum...
Inache na
http://www.web19a.co.yu/pret/rotate.php.txt imate i malo drugachiju verziju ove scriptice u kojoj zadajete direktorijum, ali i pojedinachno fajlove koje hocete da se prikazuju [ako nekome iz nekog razloga trreba bash to].
E sada za refresh deo trenutno nemam ideju a i vec je skoro 2, tako da ... mozda sutra ako se niko ne seti. ... ali znam da je to moguce [poshto je eyesearch kada je postavio topic pitao da li je to moguce]
Josh jednom da napomenem onaj javascript "refresh" ne radi iz gore pomenutog razloga tako da to otpada