Alle plaatjes uit directory weergeven

Door Niels , 23 jaar geleden, 11.007x bekeken

Dit script laat alle plaatjes uit de volgende directory zien.
Must is wel dat het script in de folder vóór de plaatjes dir staat.

Het script staat in je root dir, dus http://www.jouwsite.nl/script.php
en de directory is http://www.jouwsite.nl/dir/

Als er andere bestanden in de directory staan, wat geen plaatjes zijn, worden deze ook weergegeven, maar dan als thumbs die niet kunnen worden weergegeven.

Test m zelf!

Cheers, Niels

Gesponsorde koppelingen

PHP script bestanden

  1. alle-plaatjes-uit-directory-weergeven

 

Er zijn 48 reacties op 'Alle plaatjes uit directory weergeven'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
B a s
B a s
23 jaar geleden
 
0 +1 -0 -1
en als er nou een .txt bij staat of een .exe? ik zie nergens een extentie check :)
Niels
Niels
23 jaar geleden
 
0 +1 -0 -1
nee, zit geen extentie check in.
Dan wordt r gewoon een rood kruisje weergegeven, net als dat het plaatje niet kan worden weergegeven. Tis een simpel script...;)
Micha
Micha
23 jaar geleden
 
0 +1 -0 -1
Misschien leuk om dat er in te maken, of submappen of iets
Alfred -
Alfred -
23 jaar geleden
 
0 +1 -0 -1
Quote:
echo "<img src=\"http://www.jouwsite.nl/dir/$file\"";


Zal mooi werken :/
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo "<img src=\"http://www.jouwsite.nl/dir/" . $file . "\">";  
?>


Is al direct wat ordelijker, maar het punt is eigenlijk dat je je > vergeet bij je img tag :)

Misschien ook mooier als je het uitbreidt en de grootte van de fotos opvraagt, en deze allemaal mooi bvb 150px breed maakt? Kleine uitbreidingen die je script veel mooier maken :)
Bo az
Bo az
23 jaar geleden
 
0 +1 -0 -1
volgens W3C moet je ook standaard een alt"" opgeven in je img-tag... dus is wel zo netjes om dat ff te doen ;)
Niels
Niels
23 jaar geleden
 
0 +1 -0 -1
echo "<img src=\"http://www.jouwsite.nl/dir/$file\"";
if ($inc==$file) echo " selected";
echo"><br>\n"; // die stond hier :S
}

Nu weer goed
Redmar
Redmar
23 jaar geleden
 
0 +1 -0 -1
Zeker leuk scriptje.. Met beetje aanpassen kan ik het goed gebruiken :D

Tnx!!
Mick
Mick
23 jaar geleden
 
0 +1 -0 -1
Anders zeg je ff wat voor soort plaatje in je voorbeeld staat... Er zitten ook mensen op het werk...
Han eev
Han eev
23 jaar geleden
 
0 +1 -0 -1
waar slaan die plaatjes op??
Niels
Niels
23 jaar geleden
 
0 +1 -0 -1
deel van één van mn websites www.kenkerhoo.tk
Robin
Robin
23 jaar geleden
 
0 +1 -0 -1
Als ze dat nu eens bij opendirs eens maakte :D

Helaas is niet idereen zo slim :)

Net script!!!
Niels
Niels
23 jaar geleden
 
0 +1 -0 -1
dank :$


23 jaar geleden
 
0 +1 -0 -1
Kan dit ook zo aangepast worden dat je in plaats van de plaatjes uit de dir haalt dat je een url in kan pasten zodat hij daar alle plaatjes uithaalt en die laat zien. Dus een soortachtige open dirviewer?


23 jaar geleden
 
0 +1 -0 -1
Is er ook een manier om een map inclusief al zijn sub mappen uit te lezen?


23 jaar geleden
 
0 +1 -0 -1
hoe maak je hier een extensie check in??
ben nogal een noob


23 jaar geleden
 
0 +1 -0 -1
Thanks!
Rutger Gelling
Rutger Gelling
23 jaar geleden
 
0 +1 -0 -1
ik heb mijn fotows ergens anders gehost dan waar ik mijn site heb staan. is het mogelijk te controleren welke foto's er staan op een andere site?
Alfred -
Alfred -
23 jaar geleden
 
0 +1 -0 -1
Rutger: neen, je kan geen dir uitlezen van op een andere server...


23 jaar geleden
 
0 +1 -0 -1
Hoihoi,

Leuk script! Voor de mensen onder ons die graag alleen bepaalde bestanden willen lezen:

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
<?php

    $dir
= opendir('dir');

    // Haal de gegevens uit dir
    while (false !== ($file = readdir($dir))) {
        if (($file !== ".") and ($file !== "..")) {
        list($filename, $ext) = explode(".", $file);
        list($main, $sub, $include) = explode("/", $PHP_SELF);
if ($ext == "jpg" or $ext == "png" or $ext == "gif") {
                echo "<img src=\"http://www.jouwsite.nl/dir/$file\"";  
            if ($inc==$file) echo " selected";  
            echo"><br>\n";
            }
        }
}

?>


Succes!

Gr Jelle
Hipska BE
Hipska BE
23 jaar geleden
 
0 +1 -0 -1
@jelle: mooi script!

@iedereen: kan ik in de plaats van opendir('dir') , opendir('http://www.blabla.be') of ziets zetten? of hoe doe ik dat dan?

edit: het is een andere server dan de plaats waar het uitgevoerd word
Winston Smith
Winston Smith
23 jaar geleden
 
0 +1 -0 -1
Hipska, ik denk niet dat PHP dat toelaat. Stel je voor als ik zo'n script zou maken die jouw directory opent! ;)

Het zou evenwel mogelijk kunnen zijn via omwegen, aangezien er sites zijn die open directory's van andere sites laten zien. Denk dat je dan in de hoek van sockets of regex komt?

Edit: Op phpfreakz staat eenzelfde onderwerp; als je de ftp gegevens hebt kan je via een phpscript op je ftp inloggen en dan je code erop los laten.
Erick Schluter
Erick Schluter
23 jaar geleden
 
0 +1 -0 -1
Erg leuk...

Uitlezen van een andere server kan niet omdat het bestandje in de _root moet staan ?

Kan dit niet worden aangepast, zo, dat het scriptje alles weergeeft vanuit welke folder dan ook ?
Hipska BE
Hipska BE
23 jaar geleden
 
0 +1 -0 -1
ik heb op www.php.net/ftp wat rondgekeken, maar ik geraak er niet zo best uit. ik heb ftp toegang tot die andere server maar hoe zet ik dan een lijst met de afbeeldingen in mijn pagina?
Winston Smith
Winston Smith
23 jaar geleden
 
0 +1 -0 -1
Waarschijnlijk moet je verbinding maken met de ftp server en de benodigde bestanden dan ophalen en in een tijdelijke map opslaan of zo? Zorgt wel voor extra bandbreedte en minder schijfruimte, maar ik denk niet dat je het bestand direct vanaf de andere server kunt openen.
BTW fopen("ftp://ftp.jouwserver.nl", "r+"); schijnt ook te werken, althans dat heb ik gelezen :)

@Erick: root dir kan wel worden aangepast, maar je kan dan alleen de lokale server gebruiken. PHP accepteert het gedeelte van de http:// niet denk ik.
Hipska BE
Hipska BE
23 jaar geleden
 
0 +1 -0 -1
@kasper: als je dat scriptje zo dan gebruikt, dan hof je toch nog erges je logingegevens in te voeren niet?


23 jaar geleden
 
0 +1 -0 -1
Hoe krijg ik bijv. 3 rijen naast elkaar i.p.v. 1 lange rij??????


23 jaar geleden
 
0 +1 -0 -1
Je kunt de lijst ook laten sorteren en in dezelfde map plaatsen. Zie onderstaande:

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
<?php
$itemnr
= 0;
$dir = opendir("./");
while (false !== ($file = readdir($dir)))
{

    if (($file !== ".") && ($file !== ".."))
    {

        list($filename, $ext) = explode(".", $file);
        list($main, $sub, $include) = explode("/", $PHP_SELF);
        $lijst[$itemnr] = $file;
        $itemnr++;
    }
}

sort($lijst);
for($i=0;$i<sizeof($lijst);$i++)
{

    print "<a href=\"".$lijst[$i]."\">".$lijst[$i]."</a><br />";  
}

?>


23 jaar geleden
 
0 +1 -0 -1
is er ook een mogelijkheid om dit te doen voor .pdf?


23 jaar geleden
 
0 +1 -0 -1
ik wil graag alle jpg/png/gif uit een dir weergeven als tumbname met een link dat hij hem vergroot(gwoon link naar plaatje zelf)
zou iemand hiervoor een scripte kunnen posten
Steven Pollux
Steven Pollux
22 jaar geleden
 
0 +1 -0 -1
@retanik:
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
<?php
    $target
= 'pic/';
    $dir = opendir($target);

    // Haal de gegevens uit dir
    while (false !== ($file = readdir($dir))) {
        if (($file !== ".") and ($file !== "..") and ($file !== ".DS_Store")) {
        list($filename, $ext) = explode(".", $file);
        list($main, $sub, $include) = explode("/", $PHP_SELF);
            if ($ext == "jpg" or $ext == "png" or $ext == "gif") {
                echo '<a href="'.$target.$file.'" alt="groter" target="_blank"><img src="'.$target.$file.'" height="48px" width="64px"></a>';  
                if ($inc==$file) echo " selected";  
                echo "<br>\n";
            }
        }
    }

?>


Ik maak eerst de variabele aan $target, daar geef je de folder aan die je wil. Daarna maak je gewoon een a die naar $target.$file (map/file) verwijst, dan een <img met kleine height en width.

@Klaasjan:
Nee dat kan niet, je kan wel links van de bestanden maken maar in een pagina kan je geen pdf'jes renderen. Die moeten echt in een eigen window worden geopend of gedownload!


22 jaar geleden
 
0 +1 -0 -1
Goed voorbeeld heeft niels :p
Steven Pollux
Steven Pollux
22 jaar geleden
 
0 +1 -0 -1
Ik heb hem nog wat verbeterd, nu maakt hij thumbnails en zet hij netjes in een table neer. Die table is variabel in het aantal thumbs in de breedte en zelf in te stellen.
Code:
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
<?php
    $target
= 'pic/'; //de folder die je wil
    $breedte = '4'; //de hoeveelheid thumbs naast elkaar
    $counter = '0'; //maak een variabele aan voor de counter
    $dir = opendir($target); //nodig voor het script
    
echo '<table border="0px><tr>';
    while (false !== ($file = readdir($dir))) {
        if (($file !== ".")&&($file !== "..")&&($file !== ".DS_Store")) {
        list($filename, $ext) = explode(".", $file);
        list($main, $sub, $include) = explode("/", $PHP_SELF);
            if ($ext == "jpg"||$ext == "png"||$ext == "gif") {
                echo '<td>';
                echo '<a href="'.$target.$file.'" target="_blank"><img src="'.$target.$file.'" alt="'.$file.'" height="48px" width="64px"></a>';  
                $couter++;
                echo '</td>';
                if ($couter == "$breedte") {
                 echo '</tr><tr>';
                 $couter = 0; }
            }
        }
    }

echo '</tr></table>';
?>
Cowabunga
Cowabunga
22 jaar geleden
 
0 +1 -0 -1
Hoi
ik heb een vraagje over het script van Steven
ik vind het een leuke script en wil het gaan gebruiken maar het werkt helaas niet helemaal optimaal.
je kunt niet op de eerste foto drukken maar hij laat wel een thumbnail zien
de rest van de foto's werkt wel goed. Hij laat als je er op klikt wel gewoon een grote foto zien
dus mijn vraag is hoe maak ik de eerste foto ook klikbaar zodat die vergroot word.
ik hoop dat iemand mij kan helpen

gr Cowabunga
Gerard DeBoer
Gerard DeBoer
22 jaar geleden
 
0 +1 -0 -1
Ik heb dezelfde vraag
Kristof
Kristof
22 jaar geleden
 
0 +1 -0 -1
Hey,
Steven, de eerste foto wordt inderdaad niet weergegeven zoals het hoort.
Ik heb gemerkt dat er een " tekort staat achter de 0 px.

echo '<table border="0px><tr>';

Daarmee werkt het scriptje wel perfect.

gr,
Kristof
Nick
Nick
22 jaar geleden
 
0 +1 -0 -1
Perfect script.. zelf een beetje aangepast als amateur PHP. Ik moet nu iets voor school maken he, daarbij moet ik een foto uit een map halen (wat ik nu al heb dankzij dit mooie script), de laatst gekopieerde foto in de map als eerst weergeven (descending order) en ook nog eens een text bestand die moet worden uitgelezen en de descriptie die bij de bestandsnaam hoort als <img alt="descriptie" neerzetten. Kan iemand mij opweg helpen naarmate van bijv. tutorials, op php.net wordt ik er niet wijzer van.

PS. dit is wat ik nu heb:

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
<?php
$pad
= 'gallerij/';
$dir = opendir($pad);

// Haal de gegevens uit dir

while (false !== ($file = readdir($dir)))
    {

    if (($file !== ".") and ($file !== ".."))
        {

        list($filename, $ext) = explode(".", $file);
        list($main, $sub, $include) = explode("/", $PHP_SELF);
        if ($ext == "jpg")
            {

            echo "<a href=\"$pad$file\" target='foto'><img width='280' height='230' border='0' src=\"$pad$file\"></a>";
            if ($inc==$file) echo " selected";
            }
        }
    }

?>
Jelmer -
Jelmer -
22 jaar geleden
 
0 +1 -0 -1
$fotos = array() (*en dan vooral $fotos[]), asort(), fgets, fputs, fclose, en probeer dat allemaal eens een voor een achter php.net/ te plakken :) Vooral bij user-comments staat vaak nuttige informatie.
Nick
Nick
22 jaar geleden
 
0 +1 -0 -1
Jelmer, ik ga eens even kijken. Hartstikke bedankt! Als iemand toch nog even tijd heeft misschien dat hij het toch hier kan vertellen.
Nick
Nick
22 jaar geleden
 
0 +1 -0 -1
Beste Jelmer,
ik heb een beetje gelezen en ben tot dit gekomen:

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
29
30
31
32
33
34
35
<?php

$bestand
=array_reverse(file("descripties.txt"));  

foreach($bestand as $i)    
{
    
    $i=explode("::",$i);
    $foto = $i[0];
    $naam = $i[1];    
    $naam = htmlspecialchars($naam);  
    $foto = htmlspecialchars($foto);  
}


$pad = '../gallerij/';
$dir = opendir($pad);

// lees die jpgies uit dir

while (false !== ($file = readdir($dir)))
    {

    if (($file !== ".") and ($file !== ".."))
        {

        list($filename, $ext) = explode(".", $file);
        list($main, $sub, $include) = explode("/", $PHP_SELF);
        if ($ext == "jpg") {
            if ($file == $foto) {
            echo "<a href=\"$pad$file\" target='foto'><img alt=\"$naam\" width='280' height='230' border='0' src=\"$pad$file\"></a>";
            }

            else {
            echo "<a href=\"$pad$file\" target='foto'><img alt=\"geen naam\" width='280' height='230' border='0' src=\"$pad$file\"></a>";
            }
            }
        }
    }

?>


Nu heb ik het probleem dat ik de 2e foto niet krijg te zien ik heb dit in mijn descriptie.txt:

anotherway.jpg::vrouw::
piano1.jpg::lol::
piano2.jpg::lol2::

Kun je me helpen alsjeblieft?
Proximus1978
proximus1978
20 jaar geleden
 
0 +1 -0 -1
hallo, zou iemand dit script voor mij willen bewerken?


ik zou graag thumbs van 90 bij 120 in een imagemap willen zetten op de www root, en dan als resultaat, dat ze weer worden gegeven in 1tabel
met daar in 8 blokken breed 1 blok 90 *120, met 5 pixel tussenruimte
en 5 blokken hoog. dus die tabel word auto matisch gevult met thumbs door php. verder is het belangrijk dat php het hele zooitje doorelkaar gooit.
dus niet bij elke pagina refresh het zelfde plaatje op de zelfde plaats.

graag hulp desnood wil ik er voor betalen
Mark moes
mark moes
20 jaar geleden
 
0 +1 -0 -1
@kristof:
misschien moet je dan ook nog even het goede voorbeeld geven volgende x...:P
echo '<table border="0px"><tr>';
zo moet die zijn.

@proximus1978
als ik jou een beetje begrijp moet je dat gewoon instellen in het script door met de hoogte en de breedte van de tumbs te spelen. ikzelf heb er bijvoorbeeld allebij met 17 px verhoogd, dan zijn ze duidelijker...
en het aantal foto's op of naast elkaar kun je daar ook veranderen, dat moet gewoon bovenin bij het script
Thomas
Thomas
20 jaar geleden
 
0 +1 -0 -1
om te verkomen dat files waarbij de <dot>* in hoofdletters is niet worden mee genomen heb ik nog
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$ext
= strtolower($ext);
?>

toegevoegd
Arjan jansen
arjan jansen
19 jaar geleden
 
0 +1 -0 -1
Hallo ik heb deze code maar krijg een foutmelding namelijk deze
Fatal
error: Call to undefined function fotopagina() in /storage/mijndomein/users/000811/public/sites/www.laikas-palace.nl/foto.php on line 15

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
29
30
31
32
33
34
35
36
<?php

$bestand
=array_reverse(file("fotopagina"));  

foreach($bestand as $i)    
{
    
    $i=explode("::",$i);
    $foto = $i[0];
    $naam = $i[1];    
    $naam = htmlspecialchars($naam);  
    $foto = htmlspecialchars($foto);  
}


$pad = 'http://www.laikas-palace.nl/fotopagina';
$dir = fotopagina($pad);

// lees die jpgies uit dir

while (false !== ($file = readdir($dir)))
    {

    if (($file !== ".") and ($file !== ".."))
        {

        list($filename, $ext) = explode(".", $file);
        list($main, $sub, $include) = explode("/", $PHP_SELF);
        if ($ext == "jpg") {
            if ($file == $foto) {
            echo "<a href=\"$pad$file\" target='foto'><img alt=\"$naam\" width='280' height='230' border='0' src=\"$pad$file\"></a>";
            }

            else {
            echo "<a href=\"$pad$file\" target='foto'><img alt=\"geen naam\" width='280' height='230' border='0' src=\"$pad$file\"></a>";
            }
            }
        }
    }


?>


weet iemand wat er fout is

Arjan Jansen
Arno
Arno
18 jaar geleden
 
0 +1 -0 -1
Waarschijnlijk
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?

$dir
= fotopagina($pad);
?>

vervangen door
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?

$dir
= opendir($pad);
?>

? Je hebt nu van fotopagina een functie gemaakt die niet wordt gedeclareerd.
Arjan jansen
arjan jansen
18 jaar geleden
 
0 +1 -0 -1
hallo
bedankt het werkt

Arjan
Arjan jansen
arjan jansen
18 jaar geleden
 
0 +1 -0 -1
ik heb een vraag over het script van Steven Polak met name het 2de
je kan de breedte veranderen maar niet de hoogte
is het niet mogelijk om hier een script van te maken waarbij je 2 naast en 2 onder elkaar weergeeft en dan via een knop ofzo naar de volgende als die er zijn dan he

Arjan
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Enrico -
Enrico -
18 jaar geleden
 
0 +1 -0 -1
Kan je ook alleen de laatste 5 toegevoegde foto's in de map weer laten geven. Dus dat er een limit op het aantal getoonde foto's zit?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. alle-plaatjes-uit-directory-weergeven

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.