Is het mogelijk met een redelijk simpel php script om foto's uit een bepaalde map automatisch weer te geven op een pagina, en gelijk de java lightbox e.d. eraan te linken? Dus dat je alleen de foto's in een map zet je op website, en dat de webpagina de foto's uit die map haalt en ze gelijk weergeeft zonder dat je stuk voor stuk de foto's moet aanroepen.
Ik heb zo'n script thuis liggen, zal hem vanavond doorsturen
met glob() kun je al je foto's uit een map halen. Je krijgt dan een array met daarin de locatie van je foto's. Van java heb ik helaas geen verstand.
klik

werkt perfect @SanThe
@Tobias
Zou harstikke mooi zijn!

@Mark
Het is niet bijzonder iets met java, er staat puur wat in de rel van de afbeelding

@Gerhard
ik d'r eens naar kijken :)

edit; ik heb via de link van Gerhard het voor elkaar gekregen dat ie de bestandsnamen ophaalt, ik weet echter niet hoe ik dit nu als afbeelding weer kan geven.. Ik zou ook graag de 1e 9 foto's op 1 pagina willen, de 9 daarop op een volgende pagina e.d., is dit te doen? Met PHP ben ik echt net begonnen, dus als iemand me hiermee zou kunnen helpen zou mooi zijn! :)
De functie glob is veel makkelijker en netter om te gebruiken. Je hebt daar niet een heel script voor nodig. Je leert het jezelf nu verkeerd aan. Als je pagina nummers wilt maken, dan moet je de sortering van je array in kaart brengen, en dan via $_GET variabelen aangeven waar hij moet beginnen met tonen.

Dus als je hebt: laatzien.php?begin=9, begint hij bij 9. Je zorgt er dan via een loopje voor dat die ophoudt bij 9.
Ik heb 't nu met de glob() zo dat ie alle .png bestanden ophaalt en weergeeft, nu moet ik ze alleen nog in een <img src=$filename"> krijgen, maar dat lukt me nog niet..

[size=xsmall]Toevoeging op 05/04/2011 16:46:18:[/size]

Ik heb 't nu met de glob() zo dat ie alle .png bestanden ophaalt en weergeeft, nu moet ik ze alleen nog in een <img src=$filename"> krijgen, maar dat lukt me nog niet..

<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

function showfiles($map = "./", $return = array()){
    if(@$dir = opendir($map)){
        while (false !== ($file = readdir($dir))){
            if ($file != "." && $file != ".."){
                 $return[] = $map . $file;
            }
        }
    }
    @closedir($dir);
    return $return;
}

// Functie aanroepen met de mapnaam en aan het eind een / (slash).
$dirinhoud = showfiles('media/fotos/');

for($j = 0; $j < count($dirinhoud);$j++) {
	if(is_dir($dirinhoud[$j])){
	    $return2 = showfiles($dirinhoud[$j].'/');
		
		for($i = 0; $i < count($dirinhoud);$i++){
			echo '<b>'.$dirinhoud[$i].'</b><br/>';
			for($i = 0; $i < count($return2);$i++){ 
				echo '<img src="'.$return2[$i].'"/><br/>';
			}
			echo '<br/>';
		}
	}
}
?>
<?php

foreach($images as $img){

echo '<img src='.$img.'">';
}

?>

Om de gehele array door te lopen kun je gewoon foreach gebruiken. ik weet niet hoe je array met albeeldingen heet dus je moet $images even veranderen naar die van jouw.
Ah ik heb 't nu voor elkaar dat ie foto's uit een map haalt en zo plaatst dat ik het wil, ook de lightbox zit er al aan vast. Nu nog verder met dat er maar 9 foto's per pagina komen..
Uit het hoofd en niet getest. :p garantie tot aan de deur dus.

Je weet waar $_GET['page'] vandaan komt of niet? Het gedeelte waar de foto's worden opgehaald moet je nog even zelf invullen.


<?php

    # Het aantal resultaten per pagina.
    
        $results_per_page = 9;

    
    # Foto's ophalen.
        
        $images = glob();
        

    # Foto's verdelen over meerdere pagina's.

        $pages = array_chunk($images, $results_per_page);


	# De huidige pagina bepalen.
    
        $current_page = (isset($_GET['page']) and array_key_exists($_GET['page'] - 1, $pages)) ? $_GET['page'] - 1 : 0 ;


    # Foto's weergeven.

        foreach($pages[$current_page] as $img){
            
            echo '<img src="'.$img.'">';
        }


    # Het totaal aantal pagina's tellen.
    
        $page_count = count($pages);
		    
    
    # Menu weergeven.
    
        for($i = 1; $i <= $page_count; $i++){
        
        # Link weergeven.
        
            echo '<a href="?page='.$i.'">'.$i.'</a>';
            
            
        # Divider weergeven als we nog niet op de laatste pagina zijn.
        
            if($i < $page_count){
            
                echo ' - ';
            }
        }

?>


EDIT: Menu toegevoegd om het wat duidelijker te maken.

EDIT 2: Paar foutjes eruit gehaald en snel even getest.

Reageren