foto album laat thumbs bij mappen zien wil niet </tr> aanmaken
Dit script leest alle dir's in een directorie, vervolgens gaat die deze directorie in en pakt daaruit een thumb (mapnaam/thumb). zover werkt dit allemaal prima. Alleen bij de uitvoer wil ik dat er bv een maximum is van 5 mappen op een rij. Dit gaat fout en snap niet waarom. Voor de duidelijkheid heb ik even $i laten echo en, inplaats van om de 3x een echo te geven wordt er elke keer 3 geproduceerd
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
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
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>
<?php
echo '<table><tr>';
?>
<?php
$desired_extension = ''; //wil immers de dir zien
$dirname = "./";
$dir = opendir($dirname);
while(false !== ($file = readdir($dir)))
{
if(($file != ".") and ($file != ".."))
{
$fileChunks = explode(".",$file);
if($fileChunks[1] == $desired_extension) //alleen de dir
{
$path = "$file"; //nu verder met de bestanden in de map, om een thumbnail te laten zien
$narray = array();
$dir_handle = @opendir($path) or die("falco is weer aan het prutsen");
$i = 0;
{
if($i == 4)
;
{ // dit deel werkt niet er wordt nu per loop een /tr aangemaakt ik heb er even echo van gemaakt zodat je ziet dat er voor elke loop i=3 gemaakt wordt
echo "$i";
}
}
$i++;
while($file = readdir($dir_handle))
{
if($file != 'upload.php' && $file != 'uploadscript.php' && $file != 'thumbs' &&
$file != 'FancyUpload2.js' && $file != '..' && $file != '.')
//dit moet nog aangepast worden, nu even tijdelijk een filter om alleen images als thumb te kunnen gebruiken. deze thumbs staan in de dir /thumbs
{
$narray[$i] = $file;
sort($narray); //even op alfabet gezet
}
}
$paththumb = "$path".'/thumbs';
echo '<td>'.'<center>'.ucfirst("$path").'<center>'.'<A HREF='."$path".'/'."$narray[0]".
' rel='.'"'.'lightbox[]'.'"'.' width='.'"'.'500px'.'"'.'><IMG border=0 src='."$paththumb".
'/'.'thumbs_'."$narray[0]".'>'.'</a></td>';
}
}
}
closedir($dir_handle);
?>
<?php
echo '</tr></table>';
?>
ini_set('display_errors',1);
error_reporting(E_ALL);
?>
<?php
echo '<table><tr>';
?>
<?php
$desired_extension = ''; //wil immers de dir zien
$dirname = "./";
$dir = opendir($dirname);
while(false !== ($file = readdir($dir)))
{
if(($file != ".") and ($file != ".."))
{
$fileChunks = explode(".",$file);
if($fileChunks[1] == $desired_extension) //alleen de dir
{
$path = "$file"; //nu verder met de bestanden in de map, om een thumbnail te laten zien
$narray = array();
$dir_handle = @opendir($path) or die("falco is weer aan het prutsen");
$i = 0;
{
if($i == 4)
;
{ // dit deel werkt niet er wordt nu per loop een /tr aangemaakt ik heb er even echo van gemaakt zodat je ziet dat er voor elke loop i=3 gemaakt wordt
echo "$i";
}
}
$i++;
while($file = readdir($dir_handle))
{
if($file != 'upload.php' && $file != 'uploadscript.php' && $file != 'thumbs' &&
$file != 'FancyUpload2.js' && $file != '..' && $file != '.')
//dit moet nog aangepast worden, nu even tijdelijk een filter om alleen images als thumb te kunnen gebruiken. deze thumbs staan in de dir /thumbs
{
$narray[$i] = $file;
sort($narray); //even op alfabet gezet
}
}
$paththumb = "$path".'/thumbs';
echo '<td>'.'<center>'.ucfirst("$path").'<center>'.'<A HREF='."$path".'/'."$narray[0]".
' rel='.'"'.'lightbox[]'.'"'.' width='.'"'.'500px'.'"'.'><IMG border=0 src='."$paththumb".
'/'.'thumbs_'."$narray[0]".'>'.'</a></td>';
}
}
}
closedir($dir_handle);
?>
<?php
echo '</tr></table>';
?>
Bovenstaande geupdate na onderstaande post, zie nu ook dat er een fout in zit op regel 18
Gewijzigd op 01/01/1970 01:00:00 door Fortfort x
php variabelen altijd buiten qoutes
== vergelijken, = waarde toekennen
@ dat is dweilen met de kraan open
zorg er voor dat je
boven aan je scripts hebt staan en zorg er dan voor dat je code het afkan zonder warnings errors enz en foutonderdrukking
Oh en kijk ook nog eens goed naar de voorbeelden die op php.net worden gegeven want
while(false != ($file = readdir($dir)))
=> while(false !== ($file = readdir($dir)))
En schrijf je code netjes uit, dus dat je niet }}} krijgt maar dat je netjes ziet waar de { begint en waar de } eindigd.
Deze code komt inderdaad deels van php.net maar ik wil juist dir's uitlezen. de aangedragen oplossing van anonynous om de foutmeldingen weg te werken werkt niet bij mij.
$desired_extensionDon´t use
It will create a notice if there is a file without extension. And if theres a file with 2 dots the result will be wrong.
Better use
and check for files without extension.
waar ik dan in mijn script voor gebruikt, geeft een Notice: Undefined variable: dir_handle regel 56
Code (php)
1
2
3
2
3
$fileChunks = array_reverse(explode(".",$file));
$ext = $fileChunks[0];
if($ext == $desired_extension)
$ext = $fileChunks[0];
if($ext == $desired_extension)
Gewijzigd op 01/01/1970 01:00:00 door fortfort x