slideshow met php
Ik wou eens proberen een slideshow van foto's te maken in php, aangezien ik niet zo wild ben van js.
Ik doe een poging er een functie van te maken, en op zich gaat het aardig:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
function slide_show ( $directory, $thumb, $ext, $mime ) {
$time_wait = 0;
$images = get_img ( $directory, $ext, $mime, $thumb );
$count_img = count ( $images );
$i = 0;
while ( $count_img > $i ) {
$html = "<!-- Start of SlideShow -->\n<div id=\"slideshow\">\n";
$html .= "<img src=\"".$directory."/".$images[$i]."\" title=\"". pathinfo ( $directory."/".$images[$i] , PATHINFO_FILENAME )."\"/>\n";
$html .= "</div>\n<!-- End of SlideShow -->\n";
flush();
sleep ( $time_wait );
$i++;
}
return $html;
}
?>
function slide_show ( $directory, $thumb, $ext, $mime ) {
$time_wait = 0;
$images = get_img ( $directory, $ext, $mime, $thumb );
$count_img = count ( $images );
$i = 0;
while ( $count_img > $i ) {
$html = "<!-- Start of SlideShow -->\n<div id=\"slideshow\">\n";
$html .= "<img src=\"".$directory."/".$images[$i]."\" title=\"". pathinfo ( $directory."/".$images[$i] , PATHINFO_FILENAME )."\"/>\n";
$html .= "</div>\n<!-- End of SlideShow -->\n";
flush();
sleep ( $time_wait );
$i++;
}
return $html;
}
?>
Heel basic dus.
$images is een array met alle images.
Het probleem is dat de hele functie wordt uitgevoerd, en vervolgens pas de laatste in de loop wordt weergegeven.
Als ik alle variabelen $html vervang voor echo's dan komt het wel goed, maar in een functie wil je niet echoen...
Wie kan me een zetje in de goede richting doen?
Dus je zal toch iets als javascript, flash, java, silverlight, enzovoort moeten gebruiken.
Php heeft toch functies genoeg om te doen wat ik wil? Daarvoor hoef je m.i. niet heel perse js etc. te gebruiken.
In principe is mijn functie werkzaam, alleen vanwege de return volgens mij laat hij het niet achter elkaar zien.
Zit ik echt heel fout, of heb ik een beetje gelijk? hoe dan ook, wat is er verkeerd aan om het serverside te houden?
mark moes schreef op 05.01.2010 14:36:
(nee, ik wou niet eigenwijs overkomen :P)
Php heeft toch functies genoeg om te doen wat ik wil? Daarvoor hoef je m.i. niet heel perse js etc. te gebruiken.
In principe is mijn functie werkzaam, alleen vanwege de return volgens mij laat hij het niet achter elkaar zien.
Zit ik echt heel fout, of heb ik een beetje gelijk? hoe dan ook, wat is er verkeerd aan om het serverside te houden?
Php heeft toch functies genoeg om te doen wat ik wil? Daarvoor hoef je m.i. niet heel perse js etc. te gebruiken.
In principe is mijn functie werkzaam, alleen vanwege de return volgens mij laat hij het niet achter elkaar zien.
Zit ik echt heel fout, of heb ik een beetje gelijk? hoe dan ook, wat is er verkeerd aan om het serverside te houden?
Omdat het clientside is.
Welke functies wil je dan gebruiken? Volgens mij krijg je dan echt een heel gepruts en niet een fijn gevoel. Je pagina blijft dan de hele tijd dat die slideshow loopt laden. Dan lijkt het net alsof het niet klopt. Ook moet je het goed ingesteld hebben, anders kunnen browsers zich er ook over verslikken (dat ze niks laten zien, tot dat de pagina geladen is). Verder is dit niet de bedoeling van output buffering.
lijkt mij niet dat dit kan met PHP, want PHP is server side, en wat jij wilt is client side (zoals Javascript en Flash)
Wanneer dat goed wordt gebruikt, dan kan een browser zich er niet in verslikken leek mij, en hoeft er geen JS worden gebruikt.
mark moes schreef op 05.01.2010 14:48:
ik was van mening met mijn beetje kennis dat ik met flush() en sleep() al een heel eind in de richting was.
Wanneer dat goed wordt gebruikt, dan kan een browser zich er niet in verslikken leek mij, en hoeft er geen JS worden gebruikt.
Wanneer dat goed wordt gebruikt, dan kan een browser zich er niet in verslikken leek mij, en hoeft er geen JS worden gebruikt.
Het is nauwelijks te doen. Het wordt onregelmatig en het werkt niet lekker.
En natuurlijk het belangrijkste argument, het is clientside, dan doe je geen serverside oplossing.
Je gaat ook niet naast een racefiets rennen.
Nee gekheid genoeg, ik begrijp je.
Toch ben ik nog steeds benieuwd of ik die wisselende variabele ook kan blijven outputten. Die return is namelijk maar 1 keer, zoals vast duidelijk was, maar ik ben benieuwd of ik ook kan blijven returnen.