foto album laat thumbs bij mappen zien wil niet </tr> aanmaken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fortfort x

fortfort x

08/11/2008 15:11:00
Quote Anchor link
Met een scriptje waar ik mee aan het werken ben kom ik niet tot een bevredigend resultaat met het bouwen van een tabel.

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)
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
<?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>';
?>

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 hulp

PHP hulp

18/11/2024 07:25:13
 
Noppes

Noppes

08/11/2008 15:20:00
Quote Anchor link
Let op het volgende:
php variabelen altijd buiten qoutes
== vergelijken, = waarde toekennen
@ dat is dweilen met de kraan open
zorg er voor dat je
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>

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.
 
Fortfort x

fortfort x

08/11/2008 15:49:00
Quote Anchor link
bedankt voor de snelle reactie, ik heb het aangepast ook in de code hierboven, maar helaas nog niet de juiste uitwerking. Zou je me iets meer kunnen sturen.

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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$fileChunks
= explode(".", $file);
$ext= $fileChunks[1];
?>


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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$fileChunks
= array_reverse(explode(".", $file));
$ext= $fileChunks[0];
?>

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$fileChunks = array_reverse(explode(".",$file));
        $ext = $fileChunks[0];
        if($ext == $desired_extension)
Gewijzigd op 01/01/1970 01:00:00 door fortfort x
 



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.