Picture gallery generaten uit map

Door Jacco Engel, 20 jaar geleden, 7.499x bekeken

Ik zag het script van stefan en dacht "What the heII, het is toch rustig. Ik maak er iets van wat wel werkt zoals het hoort te werken".

Dit is het eindresultaat. Alleen resizen gaat niet echt netjes (plat width="100") Maar ik hoop dat jullie daar overheen kunnen stappen :P

Als ook dit volgens jullie echt een baggerscript is zet het er dan ff bij :P

Voorbeeld: http://Niet online

Gesponsorde koppelingen

PHP script bestanden

  1. picture-gallery-generaten-uit-map

 

Er zijn 9 reacties op 'Picture gallery generaten uit map'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
- SanThe -
- SanThe -
20 jaar geleden
 
0 +1 -0 -1
Beste Jacco,

Zoals ik je al in een PM heb gemeld was ik ook al met je script aan de slag gegaan. Ik heb bovenstaand script getest en het werkt totdat je de $dirname wijzigt, dan doet ie het niet meer. Er zijn ook een paar dingetjes die korter kunnen. Hieronder mijn versie van het geheel. Getest en een voorbeeld is te zien op http://www.test.santhe.nl/fotogallery.php
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

##########################################
//Even wat dingen instellen.

$dirname= "./images/treinen/";// directory met plaatjes ten opzichte van de huidige directory
$naast_elkaar = 5;// aantal plaatjes naast elkaar
$onder_elkaar = 3;// aantal plaatjes onder elkaar
$breedte = 100;// width van de plaatjes
$img_extensions = array('jpg', 'JPG', 'gif');// de toegestane plaatjes
##########################################


function check_file($filename)
{

    global $img_extensions;
    $file_array = explode(".", $filename);
    return ((count($file_array) == 2) and (in_array($file_array[1], $img_extensions)));
}

function
get_file_array($dir)
{

    $file_array = array();
    if($handle = opendir($dir))
    {

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

            if(check_file($file))
            {

                //Het is een plaatje, laat hem zien...
                $file_array[] = $file;
            }
        }

        closedir($handle);
    }

    return $file_array;
}

function
showImages($image_array, $begin, $eind)
{

    global $dirname, $naast_elkaar, $breedte;
    $begin_check = $begin;    
    $return = '<tr>';
    while ($begin < $eind and isset($image_array[$begin]))
    {

        $return .= '<td><img src="' . $dirname . $image_array[$begin] . '" width="' . $breedte . '"/></td>';
        $begin++ ;
        $return .= ($begin%$naast_elkaar == 0) ? '</tr><tr>' : '';
    }

    return $return . '</tr>';
}

function
genPages($number_of_files, $page_limit)
{

    $pages = ($number_of_files%$page_limit == 0) ? $number_of_files / $page_limit : $number_of_files / $page_limit + 1;
    $i = 1 ;
    $return = '<table><tr>';
    while ($i <= $pages)
    {

        $return .= '<td><a href="?page=' . $i . '">' . $i . '</a></td>';
        $i++;
    }

    return $return . '</tr></table>';
}


echo '<html><body><table>';
$page_limit = $naast_elkaar * $onder_elkaar;
$file_list = get_file_array($dirname);
$page = (isset($_GET["page"])) ? $_GET['page'] : 1;
$begin = ($page * $page_limit) - $page_limit;
$eind = $page * $page_limit;
echo showImages($file_list, $begin, $eind);
echo '</table>';
echo genPages(count($file_list), $page_limit) ;
echo '</body></html>';
?>
Joren de Wit
Joren de Wit
20 jaar geleden
 
0 +1 -0 -1
Leuke scriptjes, maar ben het alleen niet helemaal eens met de check_file() functie. Op deze manier mag er maar 1 . in een bestandsnaam voorkomen en dat terwijl image.0000.jpg ook een geldige bestandsnaam is.

Ik zou die functie dus liever zo zien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
function check_file($filename)
{

    global $img_extensions;
    $file_array = explode('.', $filename);
    return (in_array(strtolower($file_array[count($file_array)-1]), $img_extensions));
}

?>

De functie strtolower() gebruik ik zodat je in de array $img_extensions alleen de lowercase waarden hoeft op te nemen.
Jelmer -
Jelmer -
20 jaar geleden
 
0 +1 -0 -1
In die functie van Blanche zou je "$file_array[count($file_array)-1]" nog kunnen vervangen door "end($file_array)", of je zou een combinatie van strrpos en substr kunnen gebruiken :+
Kalle P
Kalle P
20 jaar geleden
 
0 +1 -0 -1
@santhe
Werkt lekker snel
- SanThe -
- SanThe -
20 jaar geleden
 
0 +1 -0 -1
@Kalle: Niet dus, neem ik aan. ;-)) Het is ook maar een testserver en de plaatjes zijn ongeveer 50 Kb en hebben een width waar ze mee worden verkleind. Als dit script echt functioneel moet zijn dan pas je dat soort dingen uiteraard even aan.

Edit: Typo.
Jurgen
jurgen
20 jaar geleden
 
0 +1 -0 -1
@ SanThe

Ik gebruik jouw script voor mijn fotos, werkt lekker. Alleen worden de fotos niet in alfabetische volgorde weergegeven.
Fotos zijn als volgt opgeslagen: 01.jpg 02.jpg, ...
Lokaal werkt dit wel (alfabetisch), op m'n hosting echter niet :(
Hoe kan ik dit oplossen?
Jacco Engel
Jacco Engel
20 jaar geleden
 
0 +1 -0 -1
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
function get_file_array($dir)
{
    $file_array = array();
    if($handle = opendir($dir))
    {
        while(false !== ($file = readdir($handle)))
        {
            if(check_file($file))
            {
                //Het is een plaatje, laat hem zien...
                $file_array[] = $file;
            }
        }
        closedir($handle);
    }
    return sort($file_array);
}


Let op het subtiele maar fundamentele verschil in de return ;)
Mitch
Mitch
19 jaar geleden
 
0 +1 -0 -1
Even een vraagje,
Hoe kan ik ze op naam sorteren?
Greets Mitch
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Fortfort x
fortfort x
19 jaar geleden
 
0 +1 -0 -1
Is het mogelijk om in dit script een aanpassing te maken zodat het script de directories laat zien in een map en niet de plaatjes? Het werkt in iedergeval niet als je de image extensies weghaald, of ./ , / als extensie gebruikt

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

Inhoudsopgave

  1. picture-gallery-generaten-uit-map

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.