Random image loopt niet lekker
wat kan hier verbeterd aan worden zodat het wel lekker loopt?
ik gebruik wel graag gd omdat ik hem dan kan gebruiken op fora etc.
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
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
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
//vul hier in welke folder je wilt gebruiken. als
//je deze script in dezelfde folder zet als je
//plaatjes hoef je hier niks aan te passen
$folder = '.';
//kies hier op welke extensies je wilt zoeken
$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';
$img = null;
if (substr($folder,-1) != '/') {
$folder = $folder.'/';
}
if (isset($_GET['img'])) {
$imageInfo = pathinfo($_GET['img']);
if (
isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
file_exists( $folder.$imageInfo['basename'] )
) {
$img = $folder.$imageInfo['basename'];
}
} else {
$fileList = array();
$handle = opendir($folder);
while ( false !== ( $file = readdir($handle) ) ) {
$file_info = pathinfo($file);
if (
isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
$fileList[] = $file;
}
}
closedir($handle);
if (count($fileList) > 0)
{
$mtime = explode(" " , microtime());
$mtime = explode(".",$mtime[0]);
$imageNumber = $mtime[1] % count($fileList);
$img = $folder.$fileList[$imageNumber];
}
}
if ($img!=null) {
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
header ($contentType);
readfile($img);
} else {
//hieronder wordt de GD module gebruikt om een plaatje
//te maken met een error als deze script geen plaatjes
//kan vinden. Hiervoor moet de GD module geinstalleerd
//zijn.
if ( function_exists('imagecreate') ) {
header ("Content-type: image/png");
$im = @imagecreate (400, 200)
or die ("Cannot initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 0,0,0);
$text_colorred = imagecolorallocate ($im, 255,0,0);
imagestring ($im, 5, 120, 5, "ERROR ", $text_colorred);
imagestring ($im, 5, 5, 25, "deze script geen plaatjes kan vinden", $text_colorred);
imagestring ($im, 3, 5, 100, "De oorzaak kan zijn:", $text_color);
imagestring ($im, 2, 5, 125, "1. de script kan geen plaatjes vinden met de jouw gekozen extensies", $text_color);
imagestring ($im, 2, 5, 150, "2. Er bevinden geen plaatjes in de directory: $folder", $text_color);
imagepng ($im);
imagedestroy($im);
}
}
?>
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
//vul hier in welke folder je wilt gebruiken. als
//je deze script in dezelfde folder zet als je
//plaatjes hoef je hier niks aan te passen
$folder = '.';
//kies hier op welke extensies je wilt zoeken
$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';
$img = null;
if (substr($folder,-1) != '/') {
$folder = $folder.'/';
}
if (isset($_GET['img'])) {
$imageInfo = pathinfo($_GET['img']);
if (
isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
file_exists( $folder.$imageInfo['basename'] )
) {
$img = $folder.$imageInfo['basename'];
}
} else {
$fileList = array();
$handle = opendir($folder);
while ( false !== ( $file = readdir($handle) ) ) {
$file_info = pathinfo($file);
if (
isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
$fileList[] = $file;
}
}
closedir($handle);
if (count($fileList) > 0)
{
$mtime = explode(" " , microtime());
$mtime = explode(".",$mtime[0]);
$imageNumber = $mtime[1] % count($fileList);
$img = $folder.$fileList[$imageNumber];
}
}
if ($img!=null) {
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
header ($contentType);
readfile($img);
} else {
//hieronder wordt de GD module gebruikt om een plaatje
//te maken met een error als deze script geen plaatjes
//kan vinden. Hiervoor moet de GD module geinstalleerd
//zijn.
if ( function_exists('imagecreate') ) {
header ("Content-type: image/png");
$im = @imagecreate (400, 200)
or die ("Cannot initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 0,0,0);
$text_colorred = imagecolorallocate ($im, 255,0,0);
imagestring ($im, 5, 120, 5, "ERROR ", $text_colorred);
imagestring ($im, 5, 5, 25, "deze script geen plaatjes kan vinden", $text_colorred);
imagestring ($im, 3, 5, 100, "De oorzaak kan zijn:", $text_color);
imagestring ($im, 2, 5, 125, "1. de script kan geen plaatjes vinden met de jouw gekozen extensies", $text_color);
imagestring ($im, 2, 5, 150, "2. Er bevinden geen plaatjes in de directory: $folder", $text_color);
imagepng ($im);
imagedestroy($im);
}
}
?>
ook heb ik opgemerkjt dat deze wel goed werkt:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
$dir = opendir('.');
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
echo "<img src=\"".$afbeelding[$rand]."\">";
?>
$dir = opendir('.');
// Haal de gegevens uit dir
while(false !== ($file = readdir($dir)))
{
if(($file !== ".") && ($file !== ".."))
{
list($filename, $ext) = explode(".", $file);
$ext = strtolower($ext);
if(($ext == "jpg") || ($ext == "png") || ($ext == "gif"))
{
$afbeelding[] = $file;
}
}
}
closedir($dir);
// Telt aantal afbeeldingen in map en maakt een random getal uit dat aantal.
$aantal = count($afbeelding) - 1;
$rand = mt_rand(0, $aantal);
echo "<img src=\"".$afbeelding[$rand]."\">";
?>
ik heb alleen geen enkel idee hoe dat inelkaar te passen.
weet iemand hoe je die laatste kan inporteren in het bovenste script?
iemand id?:D
Rustig :P Als je wilt weten hoe je moet importeren doe je dat toch gewoon met include() ?