Toon laatste plaatje in map

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Guy Cramer

Guy Cramer

16/02/2015 10:15:21
Quote Anchor link
Hallo,

Ik zoek een script om uit 5 verschillende mapjes steeds het nieuwste plaatje te tonen, en die zich steeds refresh.

Mijn PHP kennis is te minimal op dit zelf te maken, heft iemand hier ervaring ermee?
 
PHP hulp

PHP hulp

22/12/2024 13:27:50
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/02/2015 10:36:04
Quote Anchor link
Even los uit de pols en niet getest:

Ik hoop er op dat php de bestanden op volgorde pakt zoals ze naar de directory geschreven zijn.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$fotos
= [];

// pak alle bestanden uit een bepaalde directory
foreach (glob("directory/*.*") as $filename) {

    // verkrijg informatie over de bestandsnaam in de vorm van een array
    $path_parts = pathinfo($filename);

    // als de extensie van het bestand jpg, png of gif is..
    if(in_array(strtolower($path_parts['extension']), array('jpg', 'png', 'gif'))
    {

        $fotos[] = $filename; // voeg toe aan de lijst van foto's
    }
}


// zet de array ondersteboven
$fotos = array_reverse($fotos);

// spuug de eerste vijf uit
$i = 0;
foreach($fotos as $foto) {
    echo $foto . '<br>';
    $i++;
    if($i > 5)
        break;
}

?>
Gewijzigd op 16/02/2015 10:43:50 door Frank Nietbelangrijk
 
Guy Cramer

Guy Cramer

16/02/2015 11:49:47
Quote Anchor link
Bedankt ten eerste!

Ik heb hem in dezelfde directory gezet als de plaatjes en de regel hieronder aangepast:

Quote:
foreach (glob("*.*") as $filename) {


Maar krijg een leeg scherm, of doe ik nog wat verkeerd?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/02/2015 11:53:26
Quote Anchor link
Plaats eens een paar echo's in de eerste foreach:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
foreach (glob("directory/*.*") as $filename) {

    echo $filename . '<br>';
    // verkrijg informatie over de bestandsnaam in de vorm van een array
    $path_parts = pathinfo($filename);

    // als de extensie van het bestand jpg, png of gif is..
    if(in_array(strtolower($path_parts['extension']), array('jpg', 'png', 'gif'))
    {

        $fotos[] = $filename; // voeg toe aan de lijst van foto's
    }
}

?>


komen er bestandsnamen in beeld? zo niet dan is de directory niet goed denk ik.
 
Guy Cramer

Guy Cramer

16/02/2015 12:01:44
Quote Anchor link
komt niets. Ik heb de php bestand in dezelfde directory als de plaatjes.

Ik heb ook dit script gevonden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

    $images
= glob('*.{gif,png,jpg,jpeg}', GLOB_BRACE); //formats to look for

    $num_of_files = 1; //number of images to display

    foreach($images as $image)
    {

         $num_of_files--;

         if($num_of_files > -1) //this made me laugh when I wrote it
           echo "<b>".$image."</b><br>Capture van ".date('D, d M y H:i:s', filemtime($image)) ."<br><img src="."'".$image."'"."><br><br>" ; //display images
         else
           break;
    }

?>


alleen toont deze mij alleen de eerste
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/02/2015 12:33:50
Quote Anchor link
en als je van dat script van die 1 eens een 5 maakt op regel 5? ;-)
 
Thomas van den Heuvel

Thomas van den Heuvel

16/02/2015 12:37:35
Quote Anchor link
Quote:
het nieuwste plaatje

Bedoel je hiermee "de laatste toegevoegde afbeelding"?

Dan moet je aflopend op creatie-tijd sorteren en de eerste afbeelding selecteren. Of je zorgt ervoor dat je afbeeldingen zinnige namen hebben, of je houdt dit bij in een database. In jouw bovenstaande script wordt de directory in een volgorde uitgelezen die waarschijnlijk verschilt van de volgorde van toevoegen (dump $images maar eens).

Als je de directories zelf onderzoekt kan het zinnig zijn om van tevoren clearstatcache() aan te roepen, zodat de directory cache wordt ververst.
 
Guy Cramer

Guy Cramer

16/02/2015 13:09:29
Quote Anchor link
de bestanden hebben wel herleidbare namen.

Schedule_20150216-091200.jpg
Schedule_YYYYMMDD-UUMMSS.jpg

Als ik de 1 in 5 wijzig krijg ik de eerste 5
 
Ivo P

Ivo P

16/02/2015 18:43:44
Quote Anchor link
Glob sorteert al alfabetisch.

Dan moet je dus de laatste 5 items hebben:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$aFiles
= glob(.....);

$alast5 = Array_slice($aFiles,-5);

?>
 
Guy Cramer

Guy Cramer

16/02/2015 19:59:02
Quote Anchor link
Hallo,

Heb het doorgelezen en het eea geprobeerd met samenvoegen, maar mijn kennis met php is hiervoor nog niet doorontwikkeld :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.