readdir probleem.
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)
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
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" /> <a href="fotoboek.php?mapn='.$file.'">'.$file.'</a><br />';
}
}
closedir($handle);
}
?>
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" /> <a href="fotoboek.php?mapn='.$file.'">'.$file.'</a><br />';
}
}
closedir($handle);
}
?>
Edit:
Topic staat in verkeerde categorie kan iemand hem verplaatsen
Topic staat in verkeerde categorie kan iemand hem verplaatsen
Gewijzigd op 01/01/1970 01:00:00 door Remco
remco schreef op 17.02.2008 15:22:
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.
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.
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.
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
hier eens mee te werken..
Probeer Krijg wederom geen error en een lege pagina.
Edit:
Zal even naar bovenstaande link kijken
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.
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
Heeft niemand een idee?
Die is_dir gaat vaak fout. Ik zal eens checken.
Aan te passen naar eigen behoefte. Eerlijkheishalve, ik heb dit NIET zelf geschreven, maar werkt goed.
index.php
Code (php)
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
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).'&map='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr).'"><< Vorige</a>';
}else{
echo '<< Vorige';
}
//We laten even zien op welke pagina we zitten en hoeveel er zijn.
echo ' Pagina '.ceil($paginanr+1).' van '.ceil($aantalfotos/$afbeeldingenperpagina).' ';
//Hebben we een volgende knopje nodig?
if ($paginanr < floor(($aantalfotos -1)/$afbeeldingenperpagina))
{
echo '<a href="?paginanr='.($paginanr + 1).'&map='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr + 2).'">Volgende >></a><br>';
}else{
echo 'Volgende >><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).'&foto='.($fotonr+1).'" ><img src="'.$map.'thumbs/'.$bestanden[$fotonr].'" class="thumbs" border="0"></a> ';
}
}
}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).'&foto='.$fotonr.'" title="Ga naar foto '.$fotonr.'"><< Vorige</a>';
}else{
echo '<< Vorige';
}
echo ' Foto '.($fotonr+1).' van '.count($bestanden).' ';
if ($fotonr < count($bestanden) -1)
{
echo '<a href="?map='.substr_replace($map,"",-1).'&foto='.($fotonr+2).'" title="Ga naar foto '.($fotonr+2).'">Volgende >></a><br>';
}else{
echo 'Volgende >><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>';
}
}
}
?>
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).'&map='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr).'"><< Vorige</a>';
}else{
echo '<< Vorige';
}
//We laten even zien op welke pagina we zitten en hoeveel er zijn.
echo ' Pagina '.ceil($paginanr+1).' van '.ceil($aantalfotos/$afbeeldingenperpagina).' ';
//Hebben we een volgende knopje nodig?
if ($paginanr < floor(($aantalfotos -1)/$afbeeldingenperpagina))
{
echo '<a href="?paginanr='.($paginanr + 1).'&map='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr + 2).'">Volgende >></a><br>';
}else{
echo 'Volgende >><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).'&foto='.($fotonr+1).'" ><img src="'.$map.'thumbs/'.$bestanden[$fotonr].'" class="thumbs" border="0"></a> ';
}
}
}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).'&foto='.$fotonr.'" title="Ga naar foto '.$fotonr.'"><< Vorige</a>';
}else{
echo '<< Vorige';
}
echo ' Foto '.($fotonr+1).' van '.count($bestanden).' ';
if ($fotonr < count($bestanden) -1)
{
echo '<a href="?map='.substr_replace($map,"",-1).'&foto='.($fotonr+2).'" title="Ga naar foto '.($fotonr+2).'">Volgende >></a><br>';
}else{
echo 'Volgende >><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)
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
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);
}
}
?>
//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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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;
?>
//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. :-)
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.
Dat werkt wel gewoon.