Ankündigung

Einklappen
Keine Ankündigung bisher.

thumbnails erstellen

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • tomtaz
    antwortet
    Wie florian schon öfters erwähnt hat, darf man eine Funktion nur einmal deklarieren. Das sagt auch deine Fehlermeldung aus....

    Setze die funktion am ende des Scriptes, und rufe sie in der While schleife nur mit
    PHP-Code:
    cropImage(225165"$originalpath/$source""""$thumbpath/$thumbnail"."$source"); 
    auf! So schwer ist das gar nicht! Die Postings von uns musst du schon verstehen wollen!

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Nagut, wenn du nicht auf meinen Tipp hören willst, dann lass es eben bleiben!

    Eine Funktion kann nicht mehrfach definiert werden, wird sie aber wenn sie in der Schleife steht.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    naja wie ich schon sagt, ich hab die funktion an jeder position in und ausserhalb des while probiert, der fehler ist der gleiche und zur zeit der einzige fehler der mir angezeigt wird.

    PHP-Code:
    <?PHP
    //error_reporting(0);
    error_reporting(E_ALL);
    // PFADE BILDEN
    $originalpath "divers";
    $thumbnail="thumb_";
    $thumbpath="$thumbnail"."$originalpath";
    $dest "$originalpath"."$thumbpath";
    $thumbpathdir "".$originalpath."/";

    // THUMB ORDNER ERSTELLEN
    if(!is_dir($originalpath.$thumbpath)) {
    mkdir("$thumbpathdir"."$thumbpath"0777);
    }  

    // THUMB ERSTELLEN
    $open=opendir($originalpath);
    while (
    false !== ($source readdir($open))) { 
        if (
    $source != "." && $source != "..") {
        echo 
    $source;
        function 
    cropImage($nw$nh$source$stype$dest) {
            
    $size = @getimagesize($source);
            
    $w $size[0];
            
    $h $size[1];
            switch(
    $stype) {
                case 
    'gif':
                
    $simg imagecreatefromgif($source);
                break;
                case 
    'jpg':
                
    $simg imagecreatefromjpeg($source);
                break;
                case 
    'JPG':
                
    $simg imagecreatefromjpeg($source);
                break;
                case 
    'png':
                
    $simg imagecreatefrompng($source);
                break;
            }
            
    $dimg imagecreatetruecolor($nw$nh);
            
    $wm $w/$nw;
            
    $hm $h/$nh;
            
    $h_height $nh/2;
            
    $w_height $nw/2;
            if(
    $w$h) {
                
    $adjusted_width $w $hm;
                
    $half_width $adjusted_width 2;
                
    $int_width $half_width $w_height;
                
    imagecopyresampled($simg,$dimg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
            } elseif((
    $w $h) || ($w == $h)) {
                
    $adjusted_height = @($h $wm);
                
    $half_height $adjusted_height 2;
                
    $int_height $half_height $h_height;
                
    imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
            } else {
                
    imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
            }
        
            
    imagejpeg($originalpath/$dimg,$dest,100);
                    

            }
            
            } 
    }
    cropImage(225165"$originalpath/$source""""$thumbpath/$thumbnail"."$source");


    // THUMBS AUSLESEN UND GALERIE BAUEN
    if (is_dir($originalpath.$thumbpath)) {
        if (
    $open opendir($originalpath)) {
            while ((
    $file readdir($open)) !== false) {
                        echo 
    "<a href=\"".$originalpath."/".$file."\" rel=\"lightbox\"><img style=\"float:left;\" src=\"".$originalpath."thumb_".$originalpath."thumb_".$file."\"></a>";

            }
            
    closedir($dh);
            }
    }

    ?>
    wie gesagt, 2 von 3 bilder werden gelesen:

    IMAG0060.jpgIMAG0061.jpg
    Fatal error: Cannot redeclare cropimage() (previously declared in /var/www/web1/html/file/fotos/index.php:35) in /var/www/web1/html/file/fotos/index.php on line 35

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    NEIN es macht definitiv einen Unterschied. Du darfst sie auf KEINEN FALL in der While-Schleife schreiben!

    Am besten gaaanz an den Anfang oder gaaaanz an das Ende, damit der restliche Code zusammen steht und nicht nen Teil vor und nen Teil nach der Funktion steht. Das zerrupft nur den Code.

    Desweiteren kann es natürlich noch nicht funktionieren weil du noch andere Fehler hast. Diese müssen auch noch ausgebessert werden. Aber du musst erst mal Schritt für Schritt die Fehler beheben.

    Also Funktion aus der Schleife nehmen, schauen wie readdir() funktioniert! Dann den Code bissl aufräumen, kommentieren und wieder hier posten!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    klasse fragen...wieso bin ich nicht selber drauf gekommen das ganze korrekt zuschreibe!?.. oh man


    es ist egal wo ich die funktion hinschreibe, das klappt nirgendwo. darum sitzt die in dem paste irgendwo

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Was du da veranstalltest ist das totale Chaos. Wieso hast du die Funktion IN der while() Schleife, wieso rufst du die Funktion REKURSIV auf? Warum alles so kompliziert und nicht sauber geschrieben ...

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ok das else nach dem mkdir war quark. ohne dies bekomm ich 2/3 bildern aus $source

    nun kommt folgendes:


    PHP-Code:
    IMAG0060.jpg
    Warning
    :  imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/web1/html/file/fotos/index.php on line 55

    Warning
    :  imagejpeg(): supplied argument is not a valid Image resource in /var/www/web1/html/file/fotos/index.php on line 65
    IMAG0061
    .jpg
    Fatal error
    :  Cannot redeclare cropimage() (previously declared in /var/www/web1/html/file/fotos/index.php:31in /var/www/web1/html/file/fotos/index.php on line 31 

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    so hier nochmal das script. jetzt bekomm ich weder nen error, ne warnung noch nen echo von $source


    PHP-Code:
    <?PHP
    //error_reporting(0);
    $originalpath "divers";
    $thumbnail="thumb_";
    $thumbpath="$thumbnail"."$originalpath";
    $dest "$originalpath"."$thumbpath";

    $thumbpathdir "".$originalpath."/";

    if(!
    is_dir($originalpath.$thumbpath)) {
    mkdir("$thumbpathdir"."$thumbpath"777);
    } else { 
    $open=opendir($originalpath);
    while (
    false !== ($source readdir($open))) { 
        if (
    $source != "." && $source != "..") {
        echo 
    $source;
        function 
    cropImage($nw$nh$source$stype$dest) {
            
    $size = @getimagesize($source);
            
    $w $size[0];
            
    $h $size[1];
            switch(
    $stype) {
                case 
    'gif':
                
    $simg imagecreatefromgif($source);
                break;
                case 
    'jpg':
                
    $simg imagecreatefromjpeg($source);
                break;
                case 
    'png':
                
    $simg imagecreatefrompng($source);
                break;
            }
            
    $dimg imagecreatetruecolor($nw$nh);
            
    $wm $w/$nw;
            
    $hm $h/$nh;
            
    $h_height $nh/2;
            
    $w_height $nw/2;
            if(
    $w$h) {
                
    $adjusted_width $w $hm;
                
    $half_width $adjusted_width 2;
                
    $int_width $half_width $w_height;
                
    imagecopyresampled($simg,$dimg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
            } elseif((
    $w $h) || ($w == $h)) {
                
    $adjusted_height = @($h $wm);
                
    $half_height $adjusted_height 2;
                
    $int_height $half_height $h_height;
                
    imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
            } else {
                
    imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
            }
        
            
    imagejpeg($dimg,$dest,100);
            
    cropImage(225165"$originalpath/$source""""$thumbpath/$thumbnail"."$source");
            }
            } 
        }
    }


    if (
    is_dir($originalpath.$thumbpath)) {
        if (
    $open opendir($originalpath)) {
            while ((
    $file readdir($open)) !== false) {
                        echo 
    "<a href=\"".$originalpath."/".$file."\" rel=\"lightbox\"><img style=\"float:left;\" src=\"".$originalpath."thumb_".$originalpath."thumb_".$file."\"></a>";

            }
            
    closedir($dh);
            }
    }

    ?>

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Schau dir mal das Beispiel auf php.net zu readdir an. Da steht du nutzt genau die falsche Art wie diese Funktion zu nutzen ist.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    also thumb_. kann es nicht geben, das würde heißen das es ..jpg gibt, oder eine jpg ohne dateinamen.

    hm $source gibt aus: ...
    3 punkte

    heißt das, dass schon readdir versagt?

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Nein ausführen musst du die Funktion schon. Aber definiert ist sie IN der Schleife, das heißt bei jedem Schleifendurchlauf wird die Funktion neu definiert. Irgendwo nicht so der Sinn oder?

    Schau mal GENAU hin welche Datei geöffnet werden soll.

    thumb_divers/thumb_.

    Existiert ein Bild das "thumb_." heißt?? Lass dir mal genau ausgeben welchen $source du an die Funktion übergibst.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ich dachte mir auch sowas, dass es garkein gültiges bild ist, aber im ordner sind nur jpg's von denen auch keins defekt ist soweit.


    und stimmt schon cropImage wird oben als function definiert und dann unten nochmala ausgeführt. unten ist ja dann eigentlich quark oder? aber nehm ich diese raus kommt der gleiche fehler

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Schau dir mal deine Fehlermeldungen genau an:
    Code:
    Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/web1/html/file/fotos/gso.php on line 61
    
    Warning: imagejpeg(): Unable to open 'thumb_divers/thumb_.' for writing in /var/www/web1/html/file/fotos/gso.php on line 66
    
    Fatal error: Cannot redeclare cropimage() (previously declared in /var/www/web1/html/file/fotos/gso.php:32) in /var/www/web1/html/file/fotos/gso.php on line 32
    2ter Fehler bedeutet er kann die Datei nicht öffnen. "thumb_divers/thumb_." <-- das wird wohl kein Bild sein oder? Erstmal solltest du dort anfassen um das zu beheben.

    1ter Fehler sollte dadurch behoben werden wenn im 2ten Fehler auch ein richtiges Bild eingelesen wird.

    3ter Fehler bedeutet die Funktion cropimage() wurde schon irgendwo von dir ein zweites mal definiert!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    d.h. keiner hat eine idee bezüglich dem code aus dem ersten post? Oo

    Einen Kommentar schreiben:


  • litterauspirna
    antwortet
    Das Script von tomatz ist so weit ich mich noch erinnern kann OOP! Um das zu verstehen musst dich Zwangsläufig in OOP einlesen!

    Einen Kommentar schreiben:

Lädt...
X