Ik ben op zoek naar een script wat alle images in een directory weergeeft.
Ik heb namelijk een directory vol met screenshots staan en om die allemaal handmatig op een pagina te plaatsen in html is onbegonnen werk.

Als het mogelijk is dan graag maximaal 14 images per pagina, en elk plaatje op 25% weergeven.

Misschien is het teveel gevraagt maar als iemand het heeft ben ik erg dankbaar.

Greetz Sickness
[email protected]
<?
$dir = "plaatjes";
$all_in_dir = readdir($dir);
echo $all_in_dir;
?>

:)
werkt niet :(
mijn pagina blijft blank.

<html>
<head>
<title>.:: online foto album ::.</title>
<?php

//LET OP!!! Hier moet je de directory invullen waar je foto's staan
//vergeet niet de "/" op het einde ;-)
//deze directory gaat uit van het pad waar index.php staat. Ook geen
//leading "/" gebruiken dus.

$dir = 'foto/';

//inhoud van de directory ophalen
$handle = opendir($dir);

while ($file = readdir($handle))
{
if($file == '.' || $file == '..')
continue;
else
$result_array[]=$file;
}
closedir($handle);

array_multisort($result_array, SORT_DESC);

?>

<script language="JavaScript">

<!--

function laatZien(fotonr, hoogte, breedte, src)
{
foto = window.open('','','menubar=yes,toolbar=nu');
foto.resizeTo(breedte,hoogte);
foto.document.write("<html><head><title>Foto - " + fotonr + "</title></head><body leftmargin='0' topmargin='0'>");
foto.document.write("<center><img src=" + src + fotonr + "><center><br>");
foto.document.write("<center><font face='Arial, Helvetica, sans-serif' size='2'>.::<a href='JavaScript:window.close();'> Sluit venster </a>::.</font></center>");
foto.document.write("</body></html>");
}

!-->

</script>

</head>

<style>

body

{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
background-color: #FFFFFF
}
span
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #CC6633
}

a:link { color: #000000; font-size: 12px }
a:visited { color: #31928C; font-size: 12px }
a:active { color: #CCFFCC; font-size: 12px }
a:hover { color: #CC3333; font-size: 12px }

</style>

<body>

<?php

//aantal rijen en kolommen in stellen. De dir waar je je foto's moet in zetten heet "foto". Deze index.php moet
//één directory hoger staan :-)
//Wil je dat wijzigen, dan moet je niet vergeten het stukje JavaScript hier boven ook te wijzigen.
//ik had de tabellen ook vanaf hier willen configgen, maar dat zijn slechts 3 regels dus dat
//doe je zelf maar :-P
$rows = 3;
$cols = 3;

//pagina nummer ophalen, indien geen pagina nummer op 0 zetten
if(isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 0;
}

//totaal aantal foto's, om het aantal pagina's uit te rekenen
$num_pics = count($result_array);

//wat vars en andere rommel om de juiste pagina's en array's door te lopen
$cells = $rows * $cols;
$pages = ceil($num_pics / ($rows * $cols));
$num_pages = $pages - 1;
$output = array();
$slices = array();
$push = 0;
$showpage = $page + 1;

//array vullen met waarden voor de slice om afbeeldingen per pagina weer te geven
for($k=0;$k<$pages;$k++)
{
array_push($slices, $push);
$push = $push + $cells;
}

//lusje om te kijken op welke pagina we zijn en vervolgens de goede set afbeeldingen uit $result_array halen
for($k=0;$k<$pages;$k++)
{
if($page == key($slices))
{
$output = array_slice($result_array, current($slices), $cells);
}
next($slices);
}

reset($output);

//afbeelden van afbeeldingen
print "<center>\n<table width='*' border='1' bordercolor='#000000' cellspacing='0' cellpadding='2'>\n";

for($i=0;$i<$rows;$i++)
{
print "\t<tr>\n";
for($j=0;$j<$cols;$j++)
{
if(current($output) != false)
{
$pic = current($output);

$size = getimagesize($dir.$pic);
$height_button = $size[1] + 70;
$value = current($output);
print "\t\t<td width='100' height='100' align=center>\n\t\t\t<a href=JavaScript:laatZien('$value',$height_button,$size[0],'$dir');>\n\t\t\t\t<img width='100' height='100' border='0' src='$dir$value'>\n\t\t\t</a>\n\t\t</td>\n\n";
next($output);
}
else
{
print "\t\t<td width='100' height='100' align='center'>&nbsp;</td>\n";
}
}
print "\t</tr>\n";
}

//hier worden de prev en next knopjes gemaakt.
print "</table>\n";

if($num_pages == '0')
{
print "<span>[ </span>";
print "vorige";
print "<span> ] </span>";

print "<span> [ </span>";
print "volgende";
print "<span> ]</span>";
}
elseif(($page == '0')||($page == ''))
{
// geen previous knopje, begin pagina index.php?page=0
$next = $page + 1;

print "<span>[ </span>";
print "vorige";
print "<span> ] </span>";

$page_link = 1;

for($k=0;$k<$pages;$k++)
{
if($k == $page)
{
print "$page_link&nbsp;";
}
else
{
print "<a href='index.php?page=$k'>$page_link</a>&nbsp;";
}
$page_link++;
}

print "<span> [ </span>";
print "<a href='index.php?page=$next'>volgende</a>";
print "<span> ]</span>";
}

elseif($page == $num_pages)
{
// geen next knopje, $pages = maximum
$prev = $page - 1;

print "<span>[ </span>";
print "<a href='index.php?page=$prev'>vorige</a>";
print "<span> ] </span>";

$page_link = 1;

for($k=0;$k<$pages;$k++)
{
if($k == $page)
{
print "$page_link&nbsp;";
}
else
{
print "<a href='index.php?page=$k'>$page_link</a>&nbsp;";
}
$page_link++;
}

print "<span> [ </span>";
print "volgende";
print "<span> ]</span>";
}

else
{
// de rest, pagina's in het midden, 2 knopjes
$next = $page + 1;
$prev = $page - 1;

print "<span>[ </span>";
print "<a href='index.php?page=$prev'>vorige</a>";
print "<span> ] </span>";

$page_link = 1;

for($k=0;$k<$pages;$k++)
{
if($k == $page)
{
print "$page_link&nbsp;";
}
else
{
print "<a href='index.php?page=$k'>$page_link</a>&nbsp;";
}
$page_link++;
}

print "<span> [ </span>";
print "<a href='index.php?page=$next'>volgende</a>";
print "<span> ]</span>";
}

//pagina nummer afbeelden, dit kan je er nog uit slopen of ergens anders neerkwakken
print "<br><br>";
print "Pagina: $showpage van $pages";
?>

</center>

</body>
</html>
Het enige nadeel van dit scriptje is dat alle foto's op de verkeerde volgorde komen. Heeft iemand mischien een tip hoe ik dit wijzig?
Wow prachtig en het werkt :)
Nu moet ik nog ff uitvinden hoe ervoor gezorgt kan worden dat alleen *.jpg *.jpeg en *.bmp files worden gelezen :)

Maar dat moet wel lukken

THANQ

Greetz Sickness
<?
$dir = "plaatjes";
$all_in_dir = readdir($dir);
echo $all_in_dir;
?>

:)
ik mag toch hopen dat dat als grapje bedoelt was ;)


enne als je op extensie wil controleren moet je hier eventjes wat veranderen:
while ($file = readdir($handle))
{
if($file == '.' || $file == '..')
continue;
else
$result_array[]=$file;
}
als je op extensie wil controleren moet je hier eventjes wat veranderen:
while ($file = readdir($handle))
{
if($file == '.' || $file == '..')
continue;
else
$result_array[]=$file;
}


En hoe voeg ik dit in het script? Mijn php kennis is niet zo heel erg groot :) Ik gebruik nu dat script dat gepost is door Jos (btw ik heb overal waar index.php stond gewijzigt naar screen.php :) omdat index.php al gebruikt word op mijn site.

Greetz Sickness
<?
while ($file = readdir($handle))
{
if($file == '.' || $file == '..'){
continue;
}else{
$extension=strrchr($file,'.');
if($extension=='.jpg'||$extension=='.gif'||$extension=='.bmp'){
$result_array[]=$file;
}
}
}
?>
zo zou het moeten werken :)
Dus als ik het goed begrijp,
Plak dit stukje source gewoon bovenaan de pagina en het zou moeten werken?
Dan ga ik dat nu ff proberen :)

Greetz Sickness
(ps, k heb me geregistreerd maar hoe reply je als je bent ingelogt? lukt me niet)
inloggen lukt...


//ontopic
Als ik die code er boven plak krijg ik een parse error on line 24,
op line 24 staat:
$dir = 'screens/';


lijkt mij niet echt fout :)

Mijn hele source tot nu toe:
[code]<html>
<head>
<title>Screenshots</title>
<?
while ($file = readdir($handle))
{
if($file == '.' || $file == '..'){
continue;
}else{
$extension=strrchr($file,'.');
if($extension=='.jpg'||$extension=='.gif'||$extension=='.bmp'){
$result_array[]=$file;
}
}
}
?>
<?php
include('style.php')
//LET OP!!! Hier moet je de directory invullen waar je foto's staan
//vergeet niet de "/" op het einde ;-)
//deze directory gaat uit van het pad waar index.php staat. Ook geen
//leading "/" gebruiken dus.

$dir = 'screens/';

//inhoud van de directory ophalen
$handle = opendir($dir);

while ($file = readdir($handle))
{
if($file == '.' || $file == '..')
continue;
else
$result_array[]=$file;
}
closedir($handle);

array_multisort($result_array, SORT_DESC);

?>

<script language="JavaScript">

<!--

function laatZien(fotonr, hoogte, breedte, src)
{
foto = window.open('','','menubar=yes,toolbar=nu');
foto.resizeTo(breedte,hoogte);
foto.document.write("<html><head><title>Foto - " + fotonr + "</title></head><body leftmargin='0' topmargin='0'>");
foto.document.write("<center><img src=" + src + fotonr + "><center><br>");
foto.document.write("<center><font face='Arial, Helvetica, sans-serif' size='2'>.::<a href='JavaScript:window.close();'> Sluit venster </a>::.</font></center>");
foto.document.write("</body></html>");
}

!-->

</script>

</head>

<style>

body

{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
background-color: #FFFFFF
}
span
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #CC6633
}

a:link { color: #000000; font-size: 12px }
a:visited { color: #31928C; font-size: 12px }
a:active { color: #CCFFCC; font-size: 12px }
a:hover { color: #CC3333; font-size: 12px }

</style>

<body>

<?php

//aantal rijen en kolommen in stellen. De dir waar je je foto's moet in zetten heet "foto". Deze index.php moet
//één directory hoger staan :-)
//Wil je dat wijzigen, dan moet je niet vergeten het stukje JavaScript hier boven ook te wijzigen.
//ik had de tabellen ook vanaf hier willen configgen, maar dat zijn slechts 3 regels dus dat
//doe je zelf maar :-P
$rows = 3;
$cols = 3;

//pagina nummer ophalen, indien geen pagina nummer op 0 zetten
if(isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 0;
}

//totaal aantal foto's, om het aantal pagina's uit te rekenen
$num_pics = count($result_array);

//wat vars en andere rommel om de juiste pagina's en array's door te lopen
$cells = $rows * $cols;
$pages = ceil($num_pics / ($rows * $cols));
$num_pages = $pages - 1;
$output = array();
$slices = array();
$push = 0;
$showpage = $page + 1;

//array vullen met waarden voor de slice om afbeeldingen per pagina weer te geven
for($k=0;$k<$pages;$k++)
{
array_push($slices, $push);
$push = $push + $cells;
}

//lusje om te kijken op welke pagina we zijn en vervolgens de goede set afbeeldingen uit $result_array halen
for($k=0;$k<$pages;$k++)
{
if($page == key($slices))
{
$output = array_slice($result_array, current($slices), $cells);
}
next($slices);
}

reset($output);

//afbeelden van afbeeldingen
print "<center>\n<table width='*' border='1' bordercolor='#000000' cellspacing='0' cellpadding='2'>\n";

for($i=0;$i<$rows;$i++)
{
print "\t<tr>\n";
for($j=0;$j<$cols;$j++)
{
if(current($output) != false)
{
$pic = current($output);

$size = getimagesize($dir.$pic);
$height_button = $size[1] + 70;
$value = current($output);
print "\t\t<td width='100' height='100' align=center>\n\t\t\t<a href=JavaScript:laatZien('$value',$height_button,$size[0],'$dir');>\n\t\t\t\t<img width='100' height='100' border='0' src='$dir$value'>\n\t\t\t</a>\n\t\t</td>\n\n";
next($output);
}
else
{
print "\t\t<td width='100' height='100' align='center'> </td>\n";
}
}
print "\t</tr>\n";
}

//hier worden de prev en next knopjes gemaakt.
print "</table>\n";

if($num_pages == '0')
{
print "<span>[ </span>";
print "vorige";
print "<span> ] </span>";

print "<span> [ </span>";
print "volgende";
print "<span> ]</span>";
}
elseif(($page == '0')||($page == ''))
{
// geen previous knopje, begin pagina index.php?page=0
$next = $page + 1;

print "<span>[ </span>";
print "vorige";
print "<span> ] </span>";

$page_link = 1;

for($k=0;$k<$pages;$k++)
{
if($k == $page)
{
print "$page_link ";
}
else
{
print "<a href='screen.php?page=$k'>$page_link</a> ";
}
$page_link++;
}

print "<span> [ </span>";
print "<a href='screen.php?page=$next'>volgende</a>";
print "<span> ]</span>";
}

elseif($page == $num_pages)
{
// geen next knopje, $pages = maximum
$prev = $page - 1;

print "<span>[ </span>";
print "<a href='screen.php?page=$prev'>vorige</a>";
print "<span> ] </span>";

$page_link = 1;

for($k=0;$k<$pages;$k++)
{
if($k == $page)
{
print "$page_link ";
}
else
{
print "<a href='screen.php?page=$k'>$page_link</a> ";
}
$page_link++;
}

print "<span> [ </span>";
print "volgende";
print "<span> ]</span>";
}

else
{
// de rest, pagina's in het midden, 2 knopjes
$next = $page + 1;
$prev = $page - 1;

print "<span>[ </span>";
print "<a href='screen.php?page=$prev'>vorige</a>";
print "<span> ] </span>";

$page_link = 1;

for($k=0;$k<$pages;$k++)
{
if($k == $page)
{
print "$page_link ";
}
else
{
print "<a href='screen.php?page=$k'>$page_link</a> ";
}
$page_link++;
}

print "<span> [ </span>";
print "<a href='screen.php?page=$next'>volgende</a>";
print "<span> ]</span>";
}

//pagina nummer afbeelden, dit kan je er nog uit slopen of ergens anders neerkwakken
print "<br><br>";
print "Pagina: $showpage van $pages";
?>

</center>

</body>
</html>[code]

Reageren