readdir probleem.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back end developer

Functie Jij als full stack ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor 90% van je tijd je bezig houden met het ontwikkelen van grote maatwerk applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. De technische uitdaging momenteel is dat

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Als junior .NET Developer lever je met jouw oplossingen direct een bijdrage aan de bedrijfsprocessen van de klanten. Werkzaamheden waar jij je zoal mee bezig houdt zijn; Het ontwikkelen, onderhouden en optimaliseren van de draaiende platforms van de klanten; Softwareontwikkeling middels C#, .NET; Klantcontact om de wensen te bespreken en uit te werken; Optimaliseren van de (huidige) bedrijfsprocessen; De IT-afdeling bestaat uit 30 personen verdeeld over 3 teams. Het team waar je in terecht komt bestaat uit ongeveer tien man. Het is een team wat bestaat uit betrokken collega’s, waar iedereen bereidt is om elkaar te

Bekijk vacature »

Gezocht: .Net ontwikkelaars met een maatschappelij

Bedrijfsomschrijving Zoek jij als medior .Net ontwikkelaar een inspirerende werkplek bij een bedrijf met maatschappelijk verantwoordelijkheidsgevoel? Dan is deze vacature je op het lijf geschreven. De organisatie bestaat ruim 20 jaar en ze ontwikkelen in house applicaties waarmee de zorgsector enorm mee gebaat is. Jouw applicaties worden gebruikt door duizenden gebruikers waardoor je echt een waardevolle bijdrage kan leveren aan de maatschappij. Het bedrijf is zeer innovatief en vindt een goede werk/privé balans belangrijk. Je krijgt alle mogelijkheden om jezelf verder te ontwikkelen, je werktijden in te delen en daarnaast is het ook mogelijk om deels thuis te werken. Het

Bekijk vacature »

IT Infrastructuur Developer

IT Infrastructuur Developer Ben jij (bijna) klaar met je HBO studie in de richting van IT? Opzoek naar een spannende eerste baan, waar je ontzettend veel kan leren? Dan hebben wij de ultieme job voor jou! Voor een goede klant van ons in de financiële dienstverlening zijn wij opzoek naar een Junior Infrastructure Developer. Deze baan is een mooie kans om een sterke start te geven aan jouw carrière binnen de IT! De job Je werkt nauw samen met het Devops team, en zal je voornamelijk bezighouden met het automatiseren van infrastructure componenten. De componenten worden opgevraagd door het DevOps

Bekijk vacature »

Back-end developer (Magento2)

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »

Back-end PHP Developer

Dit ga je doen Her- en uitbouwen van het inhouse softwareplatform dmv PHP; Onderhouden van bovengenoemd platform in PHP; Sparren met het team; Meedenken over nieuwe functionaliteiten, security etc; Jouw input leveren aan het proces door op de hoogte te blijven van nieuwe ontwikkelingen etc. Hier ga je werken Onze klant, gevestigd in de omgeving van Alkmaar, levert wereldwijd oplossingen op het gebied van IT. Dag in dag uit werken zij met veel passie aan hun product waarmee ze streven naar verbeteringen binnen zorg. Voor onze klant zijn we op zoek naar een medior PHP Developer. Je komt te werken

Bekijk vacature »

Senior Mobile Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Mobile Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

PHP Developer

Dit ga je doen Ontwikkelen, implementeren en testen van PHP-oplossingen en Apps voor klanten en bedrijfsprocessen; Opstellen van requirements en uitwerken van de oplossingen; Testen van software en borgen van een soepele overdracht, inclusief documentatie; Proactief adviseren vanuit eigen expertisegebied over ontwikkelingen en verbeterpunten in technische toepassingen en processen binnen de organisatie. Hier ga je werken De organisatie is een ambitieuze en vooruitstrevende speler in de markt in de regio Rotterdam. Ze zijn de snelst groeiende in hun branche. Met een excellent aanbod en service willen zij de beste keuze zijn voor hun bestaande en nieuwe klanten. Dit alles doen

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Front end developer Zorgplatform

Functie Jij als Front end ontwikkelen zult komen te werken samen met 1 PHP ontwikkelaar, 1 Python developer en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De Marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult als Front ender dus voornamelijk bezig zijn met het verbeteren van onze interfaces op onze verschillende producten. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere

Bekijk vacature »

Embedded Software Developer Games

Functie omschrijving Heb jij affiniteit met hardware en wil jij kleuren binnen een Qt framework? Spreek jij de talen C en of C ++? Dan ben ik wellicht opzoek naar jou! Voor een super gave opdrachtgever in omgeving Delft is er namelijk plek voor een nieuwe kracht! Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke game industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen en buitenland? Je zult in een team, samen met vier ontwikkelaars, de mooiste

Bekijk vacature »

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

Bekijk vacature »
Remco

remco

17/02/2008 15:22:00
Quote Anchor link
Beste PHP'ers,

Ik ben bezig met het bouwen van een script dat een map uitleest en de submappen weergeeft. Als je dan op de link naar 1 van de mappen klikt moet je de foto's uit die map te zien krijgen. Het is dus een soort van fotoboek.
Het werkt wel redelijk maar ik zit nog wel met een probleem.
Ik heb het script in een map getest waar enkele mappen inzaten die uitgelezen moesten worden.
Ik heb toen readdir('../mapnaam/') gedaan. Dit werkt goed. Doe ik nu echter
readdir('mapnaam/') of readdir('/mapnaam/') dan wordt die map niet juist uitgelezen. Er zit namelijk wel een map in de andere map maar die toont hij niet.

Ik heb nu al vanalles geprobeerd maar kom er niet uit. Ik krijg ook geen foutmeldingen dus daar kan ik ook niets mee.
Ziet iemand misschien het probleem?
script:
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
<?php
if(isset($_GET['mapn'])){
    echo 'Lees map "'.$_GET['mapn'].'" uit<br />';
    $img = array();
    $handle=opendir($_GET['mapn']);
    while (false!==($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            if(eregi("\.jpe?g$", $file) OR eregi("\.gif$", $file) OR eregi("\.png$", $file) OR eregi("\.JPE?G$", $file) OR eregi("\.GIF$", $file) OR eregi("\.PNG$", $file)){
                echo '<img src="'.$_GET['mapn'].'/'.$file.'" alt="'.$file.'" /><br /><br />';
            }
        }
            
    }

    closedir($handle);    
}

else {
    $handle=opendir('tumb/');
    while (false!==($file = readdir($handle))) {
        if (is_dir($file) && $file != "." && $file != "..") {
            echo '<img src="folder.gif" />&nbsp;<a href="fotoboek.php?mapn='.$file.'">'.$file.'</a><br />';
        }
    }

    closedir($handle);
}

?>

Edit:

Topic staat in verkeerde categorie kan iemand hem verplaatsen
Gewijzigd op 01/01/1970 01:00:00 door Remco
 
PHP hulp

PHP hulp

27/05/2026 00:48:48
 
Jan Koehoorn

Jan Koehoorn

17/02/2008 15:26:00
Quote Anchor link
'remco:
Ik heb toen readdir('../mapnaam/') gedaan. Dit werkt goed. Doe ik nu echter
readdir('mapnaam/') of readdir('/mapnaam/') dan wordt die map niet juist uitgelezen.

Dat is logisch. Als ../ wel werkt, dan komt dat omdat je een mapniveau omhoog gaat. Hou die ervoor en je zit goed.
 
Remco

remco

17/02/2008 15:35:00
Quote Anchor link
Ik hoop dat ik je goed begrijp Jan.
Als ik bijvoorbeeld de volgende mapstructuur heb
map/
map/fotoboek.php
map/submap_1/
map/submap_1/Foto_1.jpg
map/submap_2/
map/submap_2/Foto_2.jpg
....
nu doe ik
readdir('../map/'); wat vervolgens goed werkt.

Heb ik echter de onstaande structuur:
map/
map/fotoboek.php
map/sub/submap_1/
map/sub/submap_1/Foto_1.jpg
map/sub/submap_2/
map/sub/submap_2/Foto_2.jpg
....
en dan doe ik
readdir('/sub/') of readdir('sub/') dan krijg ik niets.

Ik weet niet of het een beperking van readdir is of dat er ergens anders iets vaags fout gaat maar het werkt bij mij iig niet.
 
Jan Koehoorn

Jan Koehoorn

17/02/2008 15:41:00
Quote Anchor link
In het tweede geval zou je moeten doen: readdir ('../map/sub/');
Edit:
Hee, wacht eens. readdir ('sub/') zou ook moeten werken. Ik moet op pad, dus iemand anders helpt je wel verder ;-)
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
PHP Newbie

PHP Newbie

17/02/2008 15:49:00
Quote Anchor link
Probeer hier eens mee te werken..
 
Remco

remco

17/02/2008 15:56:00
Quote Anchor link
dit werkt ook niet :(
Krijg wederom geen error en een lege pagina.

Edit:

Zal even naar bovenstaande link kijken

Edit:

Edit 2:
Ik heb het probleem misschien al gevonden.
Als ik namelijk readdir('../map/sub/') doe dan zal dat nog wel goed gaan (vermoed ik). Het probleem zit hem echter in het feit dat ik vervolgens controleer of het bestand wel een map is. Ik denk dat daar de fout zit maar ik heb nog geen idee hoe ik dit zou moeten veranderen.
Gewijzigd op 01/01/1970 01:00:00 door remco
 
Remco

remco

18/02/2008 20:19:00
Quote Anchor link
bump....
Heeft niemand een idee?
 
Jan Koehoorn

Jan Koehoorn

18/02/2008 20:21:00
Quote Anchor link
Die is_dir gaat vaak fout. Ik zal eens checken.
 
Dennis

Dennis

18/02/2008 20:26:00
Quote Anchor link
Remco.... heb er 1 klaar voor je.
Aan te passen naar eigen behoefte. Eerlijkheishalve, ik heb dit NIET zelf geschreven, maar werkt goed.

index.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
<?php
echo '<b>titel van je overzicht pagina - Impressie </b>';

include('configuratie.php');
include('functies.php');

//Als er een map opgegeven is in de $_GET parameters kijken we of die leeg is en zorgen ervoor dat er geen misbruik van ons script gemaakt kan worden.
if(isset($_GET['map']) && !empty($_GET['map']))
{

    $map = str_replace(array(".", "\\", ":"), " ", $_GET['map']).'/';
}
else{
    $map = $beginmap.'/';
}


//Die get variabele halen we uit elkaar zodat we alle losse mappen hebben in een array.
$mappen = arraySchoonmaken(explode('/', $map));
$aantal = count($mappen)+1;

if($mappen[0] != $beginmap)
{

    echo 'Ey kappen nou! Je maakt hem kapot!';
    exit();
}


//Dit gedeelte snap ikzelf niet eens meer... vraag mij niet wat ik hier doe en hoe en waarom ik dat doe. Het doet iets en het werkt. Ik denk dat we het daar maar bij moeten laten.
for($z = 1; $z < $aantal; $z++)
{

    $temp = NULL;
    for($y = 0; $y < $z; $y++)
    {

        if($mappen[$y] == $beginmap)
        {

            $temp .= $mappen[$y];
        }
else{
            $temp .= '/'.$mappen[$y];
        }
    }

    echo ' >> <a href="?map='.$temp.'">'.ucfirst($mappen[$z-1]).'</a>';
}

echo '<hr>';

if(@$dir = opendir($map))
{

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

        //Standaard krijgen we een . en een .. te zien, die willen we niet hebben.
        if ($file != "." && $file != "..")
        {

            //Als $file een bestand is is...
            if(is_file($map.$file))
            {

                //... halen we de extensie eruit en checken of dat een jpeg is.
                $bestandsgegevens     = getimagesize($map.$file);
                $extensie             = $bestandsgegevens['mime'];
            
                if($extensie == 'image/jpeg' || $extensie == 'image/gif' || $extensie == 'image/png')
                {

                    //Toevoegen aan de bestanden array!
                    $bestanden[] = $file;
                }                        
            }

                
            //Als $file een map is...    
            if(is_dir($map.$file))
            {

                //... kijken we eerst of het niet onze thumbs of thumbsgroot map is.
                if($file != 'thumbs' && $file != 'thumbsgroot')
                {

                    //Toevoegen aan de directories array!
                    $directories[] = $file;
                }                
            }
        }
    }

    closedir($dir);
}
else{
    //Wat doe je! Je maakt hem kapot! Bel 112!!!!1111oneoneoneone
    echo '<p>Sorry, er gaat iets mis met het uitlezen van de directory!</p>';
}



//Als de directories array niet leeg is gaan we die eerst laten zien zodat mensen verder kunnen.
if(!empty($directories))
{

    foreach($directories as $directory)
    {

        echo '<img src="afbeeldingen/folder.gif" class="centreren"><a href="?map='.$map.$directory.'">'.ucfirst($directory).'</a><br>';
    }

    echo '<hr>';
}


//Als iemand niet enkele één foto opvraagt laten we de thumbnails zien.
if(!isset($_GET['foto']))
{

    if(!empty($bestanden))
    {

        if(isset($_GET['paginanr']))
        {

            if(is_numeric($_GET['paginanr']))
            {

                $paginanr = $_GET['paginanr'];
            }
        }
else{
            $paginanr = 0;
        }

        
        $aantalfotos = count($bestanden);
        
        //Als er meer dan 10 fotos zijn krijgen we een volgende/vorige knopje.

        if($aantalfotos > $afbeeldingenperpagina)
        {

            echo '<div style="text-align: center; margin: 10px;">';
            
            //Hebben we een vorige knopje nodig?
            if ($paginanr > 0)
            {

                echo '<a href="?paginanr='.($paginanr - 1).'&amp;map='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr).'">&lt;&lt; Vorige</a>';
            }
else{
                echo '&lt;&lt; Vorige';
            }

    
            //We laten even zien op welke pagina we zitten en hoeveel er zijn.
            echo '&nbsp;&nbsp;&nbsp; Pagina '.ceil($paginanr+1).' van '.ceil($aantalfotos/$afbeeldingenperpagina).' &nbsp;&nbsp;&nbsp;';
        
            //Hebben we een volgende knopje nodig?
            if ($paginanr < floor(($aantalfotos -1)/$afbeeldingenperpagina))
            {

                echo '<a href="?paginanr='.($paginanr + 1).'&amp;map='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr + 2).'">Volgende &gt;&gt;</a><br>';
            }
else{
                echo 'Volgende &gt;&gt;<br>';
            }
    
                
            echo '</div>';
        }

                
        //Don't ask, hogere wiskunde vereist. Ik weet zelf niet meer wat ik deed maar het werkt...
        for($fotonr = ($paginanr * $afbeeldingenperpagina); $fotonr <= ($paginanr * $afbeeldingenperpagina) + ($afbeeldingenperpagina) -1 && $fotonr < count($bestanden); $fotonr += 1)
        {

            //Okay.. wat als er geen thumbsmap is?
            if(!is_dir($map.'thumbs/'))
            {

                //Dan maak je die natuurlijk!
                mkdir($map.'thumbs/',0777);
            }

            
            //Okay... wat als er geen thumbnail is?
            if(!file_exists($map.'thumbs/'.$bestanden[$fotonr]))
            {

                //Dan maak je die natuurlijk!
                thumbnail($map,'thumbs/', $bestanden[$fotonr],$breedte_klein,$hoogte_klein);
            }

            
            //De thumbnail bestaat... wat moet ik doen?
            if(file_exists($map.'thumbs/'.$bestanden[$fotonr]))
            {

                //Jeetje man, kan je helemaal niks zelf? Laat die foto dan zien mafkees!
                echo '<a href="?map='.substr_replace($map,"",-1).'&amp;foto='.($fotonr+1).'" ><img src="'.$map.'thumbs/'.$bestanden[$fotonr].'" class="thumbs" border="0"></a>&nbsp;&nbsp;';
            }
        }
    }
else{
        //Duidelijk, de map is leeg!
        if(empty($directories))
        {

            echo '<p>Sorry, deze map is leeg!</p>';
        }
    }
}
else{
    //Stel dat iemand één enkele foto opvraagt! STEL JE VOOR!
    
    if(is_numeric($_GET['foto']))
    {

        $fotonr = $_GET['foto'] -1;
        
        if(@is_file($map.$bestanden[$fotonr]))
        {

            echo '<div style="text-align: center; margin: 10px;">';
            
            if ($fotonr > 0)
            {

                echo '<a href="?map='.substr_replace($map,"",-1).'&amp;foto='.$fotonr.'" title="Ga naar foto '.$fotonr.'">&lt;&lt; Vorige</a>';
            }
else{
                echo '&lt;&lt; Vorige';
            }

    
            echo '&nbsp;&nbsp;&nbsp;Foto '.($fotonr+1).' van '.count($bestanden).'&nbsp;&nbsp;&nbsp;';
        
            if ($fotonr < count($bestanden) -1)
            {

                echo '<a href="?map='.substr_replace($map,"",-1).'&amp;foto='.($fotonr+2).'" title="Ga naar foto '.($fotonr+2).'">Volgende &gt;&gt;</a><br>';
            }
else{
                echo 'Volgende &gt;&gt;<br>';
            }
    
            
            echo '</div>';
            
            //Als er geen map bestaat kan je die aanmaken...
            if(!is_dir($map.'thumbsgroot/'))
            {

                    mkdir($map.'thumbsgroot/',0777);
            }

            
            //Als de thumbnail niet bestaat wil ik dat je hem aanmaakt!
            if(!file_exists($map.'thumbsgroot/'.$bestanden[$fotonr]))
            {

                thumbnail($map,'thumbsgroot/', $bestanden[$fotonr],$breedte_groot,$hoogte_groot);
            }

            
            //De grotere thumbnail bestaat... laat maar zien die handel!
            if(file_exists($map.'thumbsgroot/'.$bestanden[$fotonr]))
            {

                echo '<div style="text-align: center;"><a href="'.$map.$bestanden[$fotonr].'" target="_blank" ><img src="'.$map.'thumbsgroot/'.$bestanden[$fotonr].'" class="groot" title="'.$bestanden[$fotonr].'" border="0"></a>';    
                $afmeeting = getimagesize($map.$bestanden[$fotonr]);
                echo '<br><br><a href="'.$map.$bestanden[$fotonr].'" target="_blank">Origineel ('.$afmeeting[0].' x '.$afmeeting[1].')</a></div>';
            }
        }
else{
            echo '<p>Sorry, deze foto bestaat niet!</p>';
        }    
    }
}

?>


functies.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
<?php
//functie, voor het opruimen van een array.
function arraySchoonmaken($array) {
   foreach ($array as $index => $value) {
       if (empty($value)) unset($array[$index]);
   }

   return $array;
}


//functie, voor het maken van een afbeelding.
function thumbnail($map,$thumblocatie,$bestandsnaam,$breedte,$hoogte)
{

    list($breedte_origineel, $hoogte_origineel, $type) = getimagesize($map.$bestandsnaam);

    //We weten de breedte/hoogte van een afbeelding, we weten ook hoe groot ze moeten worden en gaan dus lekker rekenen!
    
    if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte)) {
        $breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
    }
else{
        $hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
    }

    
    //Maak een nieuwe afbeelding aan met de juiste breedte en hoogte, openen de originele en gebruik de functie imagecopyresampled om daar een mooie afbeelding van te maken.
    $afbeelding = imagecreatetruecolor($breedte, $hoogte);
    
    switch ($type)
    {
        case
1:
            //gif
            $afbeelding_origineel = imagecreatefromgif($map.$bestandsnaam);
            imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
            imagegif($afbeelding, $map.$thumblocatie.$bestandsnaam);
            break;
        case
2:
            //jpg
            $afbeelding_origineel = imagecreatefromjpeg($map.$bestandsnaam);
            imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
            imagejpeg($afbeelding, $map.$thumblocatie.$bestandsnaam,80);
            break;
        case
3:
            //png
            $afbeelding_origineel = imagecreatefrompng($map.$bestandsnaam);
            imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
            imagepng($afbeelding, $map.$thumblocatie.$bestandsnaam);
            break;
    }  
}

function
remove_directory($dir)
{

    if(@$handle = opendir($dir))
    {

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

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

                if(is_dir($dir.'/'.$item))
                {

                     remove_directory($dir.'/'.$item);
                   }
else{
                     unlink($dir.'/'.$item);
                   }
            }
        }

        closedir($handle);
        rmdir($dir);
    }
}


?>


configuratie.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
<?php
//We maken 2 array's, eentje voor de bestanden en een voor de mappen. We geven ook aan in welke map we de afbeeldingen kunnen vinden.
$directories             = array();
$bestanden                = array();
$beginmap                = 'Overzicht';

//Een aantal variabelen die je naar eigen behoefte kunt aanpassen.
$hoogte_klein             = 150;
$breedte_klein             = 100;

$hoogte_groot             = 600;
$breedte_groot             = 380;

$afbeeldingenperpagina    = 25;
?>


Al deze bestanden gooi je bijv in een map fotoalbum...daarin mappen met de namen van je diverse albums etc etc etc.

Good luck with it.

Mucho compleet dit, maar na alle hulp die ik kreeg met een ander script van iedereen ben ik blij dat ik wat terug kan doen. :-)
 
Remco

remco

18/02/2008 20:33:00
Quote Anchor link
@Dennis
Mooi dat je dit wil delen maar hier ben ik, in eerste instantie, nog niet mee geholpen. Ik ben misschien wat eigenwijs maar ik wil het op mijn eigen manier proberen op te lossen en als het even kan zelf te scripten zodat ik ook begrijp wat er gebeurt. Verder zou ik bij dit fotoboek eerst nog het tumbnail gedeelte moeten slopen aangezien ik dat niet nodig heb.
 
Jan Koehoorn

Jan Koehoorn

18/02/2008 20:37:00
Quote Anchor link
Als ik het script in een testpagina gooi en ik doe in de url bijv:


http://www.mijnpagina.nl/test.php?mapn=/images/thumbs

dan werkt hij uitstekend?
 
Remco

remco

18/02/2008 21:05:00
Quote Anchor link
Dat werkt wel gewoon.
 



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.