Hallo allemaal,

Ik heb gezocht naar een simpel PHP bestand om de JPG's in een map weer te geven. Het bestand doet precies wat ik wil op één ding na. Hij sorteert de foto's op foto001.jpg, foto002.jpg, etc. Graag wil ik dit in omgekeerde volgorde.
Hoe realiseer ik dit?

Hieronder de code:
<?
$files = glob("*.*");
for ($i=1; $i<count($files); $i++)
{
$num = $files[$i];
print $num."<br>";
echo '<img src="'.$num.'" alt="random image" />'."<br><br>";
}
?>
Geeft niets. Gebeurt mij ook vaak ;)
Ik wil graag nog eens terugkomen op dit onderwerp. Inmiddels heb ik de code succesvol aangepast en doet ie precies wat ik wil.
Graag zou ik wel nog een toevoeging willen hebben. Op dit moment worden de foto's in een oneindig lange lijst weergegeven. Is het mogelijk om er bijvoorbeeld 20 per pagina weer te geven, en dat er dan onderin of bovenin op het scherm twee navigatielinks komen om naar de volgende cq. vorige pagina te gaan?

Alvast bedankt voor een eventuele bijdrage!~

Groeten,

Philippe
geef een variabele een value van 1 buiten de loop. Elke keer dat de loop zich herhaalt geef je de variabele de waarde + 1. Als de variabele 20 is, dan de loop afbreken
Albert de Wit op 29/11/2012 14:11:40

geef een variabele een value van 1 buiten de loop. Elke keer dat de loop zich herhaalt geef je de variabele de waarde + 1. Als de variabele 20 is, dan de loop afbreken



Hoi Albert,

Bedankt voor je reactie. Uit jouw omschrijving maak ik op dat je er vanuit gaat dat ik al basic skills heb op het gebied van PHP, helaas is niets minder waar.
Wellicht kun je met dat als code kunnen toevoegen op de eerder geposte code.

Groeten,

Philippe

Probeer zo eens

<?php
$files = array_reverse(glob("*.*")); // (eventueel) aanpassen naar eigen subfolder

$page = (int) !empty($_GET['page']) ? $_GET['page'] - 1 : 0;

echo
'<h2>bla bla</h2>'
.'<div id="fotos">' . getGaleryPage($files, $page , 20) . '</div>'
.'<div id="pagination">' . pagination(count($files), $page+1, 20) . '</div>'
.'
<style>
a.active {
color: red;
}
</style>'
;

function getGaleryPage(array $files, $page=0, $nuberPerPage=20) {
$content = "";
$range = array(
'start' => $page * $nuberPerPage,
'stop' => (($page + 1 )* $nuberPerPage - 1)
);
if ($range['start'] > count($files) || $range['start'] < 0) {
return false; // of misschien kan hier iets zinniger gebeuren ...
}
// string met de broncode voor de <img>'s opbouwen
for ($i=$range['start']; isset($files[$i]) && $i<=$range['stop']; $i++) {
$content .= $files[$i] . '<img src="' . $files[$i] . '" alt="random image"><br>' . PHP_EOL;
}
return $content;
}
/**
* genereert de pagination links
* Pas op; begint bij 1; niet bij 0
*/
function pagination($totalNumber, $page=0, $nuberPerPage=20) {
$content = '';
$length = (int) ($totalNumber / $nuberPerPage) + ( $totalNumber % $nuberPerPage ? 1 : 0); // dat laatste deel: er is altijd 1 extra pagina nodig, die niet helemaal vol zal zijn, behalve indien het totaal aantal files een veelvoud is van $nuberPerPage
for ($i=1; $i <= $length; $i++) {
$class = $i === $page ? 'active' : 'normal';
$content .= ($i > 1 ? ' | ' : ' ') . '<a class="'. $class .'" href="?page=' . $i . '">' . $i . '</a>';
}
return $content;
}
?>
Dit is precies wat ik bedoel Kris, top!

Enigste wat ik nu heb, is dat de bestandsnaam links naast de afbeelding staat. Bij het vorige script stond dit erboven. Wat moet ik aanpassen om dit gecentreerd boven de afbeeldingen te krijgen?

Groeten,

Philippe
Tekst (met afbeelding) centreren en na de naam een <br> plaatsen.
Kan ook met CSS, maar moet je alsnog de tekst in een element (als <span>) zetten, dus dan is <br> net zo makkelijk.

[size=xsmall]Toevoeging op 29/11/2012 18:07:22:[/size]

Tekst (met afbeelding) centreren en na de naam een <br> plaatsen.
Kan ook met CSS, maar moet je alsnog de tekst in een element (als <span>) zetten, dus dan is <br> net zo makkelijk.

Reageren