Pfadangaben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Pfadangaben

    Hallo Allerseits,

    da ich den Content meines Projektes über Include's in Div-Layern realisieren möchte, muss ich eine kleine Hürde überspringen. Da ein include die zu implementierende Datei aus seiner eigenen Position heraus interpretiert, möchte ich die eigentliche Datei gerne direkt im Root haben.

    Hierbei handelt es sich um ein (nicht von mir erstelltes) Galeriescript, welches die Bilder aus seinem Ordner anzeigt und ggfs. ein Thumbnail-Ordner erstellt. Die Anzeige der Bilder lasse ich über slimbox laufen.

    Mein eigentliches Problem liegt in der Trennung zwischen dem Script und dem Bilderordner.
    Zur Verdeutlichung:

    Code:
    [B]Ist:[/B] 
    -galerie (enthält den thumbnail Ordner, die Bilder und index.php)
    Code:
    [B] Soll:[/B] 
    -galerie (enthält den thumbnail Ordner und die Bilder)
    index.php
    Soweit hört sich das alles ja ganz plausibel an, allerdings hänge ich jetzt bei den Pfadangaben fest.

    Irgendwo stimmt was nicht und ich komm einfach nicht drauf.

    Mein Quelltext

    PHP-Code:
    <?php

    $cols 
    4;
    $rows 4;


    if(!
    file_exists("galerie/thumbnails"))
      
    mkdir("galerie/thumbnails"0755);

    $photos = array();

    $directory "galerie/";

    if (
    $hand opendir("galerie/")) {
      while (
    false !== ($file2 readdir($hand))) {
        if(
    $file2 != "../index.php" && $file2 != "." && $file2 != ".." && !is_dir("$file2")) {
          
    $file_count $file_count++;
          
    array_push($photos,"$file2");
        }
      }
    }

    function 
    makeThumbnail($o_file$t_ht 200) {
       
    $image_info getImageSize($o_file) ; // see EXIF for faster way

       
    switch ($image_info['mime']) {
           case 
    'image/gif':
               if (
    imagetypes() & IMG_GIF)  { // not the same as IMAGETYPE
                   
    $o_im imageCreateFromGIF($o_file) ;
               } else {
                   
    $ermsg 'GIF images are not supported<br />';
               }
               break;
           case 
    'image/jpeg':
               if (
    imagetypes() & IMG_JPG)  {
                   
    $o_im imageCreateFromJPEG($o_file) ;
               } else {
                   
    $ermsg 'JPEG images are not supported<br />';
               }
               break;
           case 
    'image/png':
               if (
    imagetypes() & IMG_PNG)  {
                   
    $o_im imageCreateFromPNG($o_file) ;
               } else {
                   
    $ermsg 'PNG images are not supported<br />';
               }
               break;
           case 
    'image/wbmp':
               if (
    imagetypes() & IMG_WBMP)  {
                   
    $o_im imageCreateFromWBMP($o_file) ;
               } else {
                   
    $ermsg 'WBMP images are not supported<br />';
               }
               break;
           default:
               
    $ermsg $image_info['mime'].' images are not supported<br />';
               break;
       }

       if (!isset(
    $ermsg)) {
           
    $o_wd imagesx($o_im) ;
           
    $o_ht imagesy($o_im) ;
           
    // thumbnail width = target * original width / original height
           //$t_wd = round($o_wd * $t_ht / $o_ht) ;

           
    if($o_wd $o_ht){
            
    $t_wd $t_ht;
            
    $o_wd $o_ht;
           }else{
            
    $t_wd $t_ht;
            
    $o_ht $o_wd;
           }
           
    $t_im imageCreateTrueColor($t_wd,$t_ht);


           
    imageCopyResampled($t_im$o_im0000$t_wd$t_ht$o_wd$o_ht);
           
    imageJPEG($t_im"galerie/thumbnails/thumb_".$o_file);

           
    imageDestroy($o_im);
           
    imageDestroy($t_im);
       }
       return isset(
    $ermsg)?$ermsg:NULL;
    }


    $count 0;
    echo 
    "<table>";
    $start intval($_GET['start']);
    foreach(
    $photos as $ind => $photo){
      if(
    $ind $start)
        continue;

      if(
    $count%$cols == 0)
        echo 
    "<tr>";

      list(
    $width$height$type$attr) = getimagesize($photo);
      
    $fsize filesize($photo);
      
    $fsize round($fsize/1024);
      
    $width2 $width;
      
    $height2 $height;
      if(!
    file_exists("galerie/thumbnails/thumb_$photo"))
        
    makeThumbnail($photo100);

      echo 
    "<td><a rel='lightbox[Bilder]' href='$photo'><img border=0 src='galerie/thumbnails/thumb_$photo'></a></td>\n";

      if(
    $count%$cols == $cols-1)
        echo 
    "</tr>";

      
    $count++;
      if(
    $count == $rows*$cols)
        break;
    }
    echo 
    "</table>";
    for(
    $i=0$i<sizeof($photos); $i += $rows*$cols){
      if(
    $i == $start)
        echo 
    "[".$i." - ".($i+$rows*$cols)."] ";
      else
        echo 
    "<a href=index.php?start=$i>[".$i." - ".($i+$rows*$cols)."]</a> ";
    }

    ?>

    Die Fehlermeldungen:

    Code:
    Warning: getimagesize(amazing-wallpapers.jpg) [function.getimagesize]:
     failed to open stream: No such file or directory in C:\xampp\htdocs\test\index.php on line 110
    
    Warning: filesize() [function.filesize]:
     stat failed for amazing-wallpapers.jpg in C:\xampp\htdocs\test\index.php on line 111
    
    Warning: getimagesize(iphone-wallpaper-vorlage.jpg) [function.getimagesize]: failed to open stream: 
    No such file or directory in C:\xampp\htdocs\test\index.php on line 110
    
    Warning: filesize() [function.filesize]:
     stat failed for iphone-wallpaper-vorlage.jpg in C:\xampp\htdocs\test\index.php on line 111
    
    Warning: getimagesize(slimbox) [function.getimagesize]:
     failed to open stream: No such file or directory in C:\xampp\htdocs\test\index.php on line 110
    
    Warning: filesize() [function.filesize]:
     stat failed for slimbox in C:\xampp\htdocs\test\index.php on line 111
    
    Warning: getimagesize(slimbox) [function.getimagesize]:
     failed to open stream: No such file or directory in C:\xampp\htdocs\test\index.php on line 38
    
    Warning: getimagesize(thumbnails) [function.getimagesize]:
     failed to open stream: No such file or directory in C:\xampp\htdocs\test\index.php on line 110
    
    Warning: filesize() [function.filesize]:
     stat failed for thumbnails in C:\xampp\htdocs\test\index.php on line 111
    
    Warning: getimagesize(thumbnails) [function.getimagesize]:
     failed to open stream: No such file or directory in C:\xampp\htdocs\test\index.php on line 38
    
    Warning: getimagesize(vista-wallpaper-1.jpg) [function.getimagesize]:
     failed to open stream: No such file or directory in C:\xampp\htdocs\test\index.php on line 110
    
    Warning: filesize() [function.filesize]:
     stat failed for vista-wallpaper-1.jpg in C:\xampp\htdocs\test\index.php on line 111
    
    Warning: getimagesize(vista-wallpaper-2.jpg) [function.getimagesize]:
     failed to open stream: No such file or directory in C:\xampp\htdocs\test\index.php on line 110
    
    Warning: filesize() [function.filesize]: 
    stat failed for vista-wallpaper-2.jpg in C:\xampp\htdocs\test\index.php on line 111
    
    Warning: getimagesize(wallpaper-2008-april.jpg) [function.getimagesize]: 
    failed to open stream: No such file or directory in C:\xampp\htdocs\test\index.php on line 110
    
    Warning: filesize() [function.filesize]:
     stat failed for wallpaper-2008-april.jpg in C:\xampp\htdocs\test\index.php on line 111
    
    Warning: getimagesize(wallpaper.jpg) [function.getimagesize]:
     failed to open stream: No such file or directory in C:\xampp\htdocs\test\index.php on line 110
    
    Warning: filesize() [function.filesize]: 
    stat failed for wallpaper.jpg in C:\xampp\htdocs\test\index.php on line 111

    Zwar werden die Bilder ganz unten angezeigt, allerdings ohne links und ohne slimbox.

    Vielleicht kann mir hier ja jemand auf die Sprünge helfen.

    Wünsch euch noch ein angenehmes Wochenende.

    Gruß
    Zuletzt geändert von AgnosticMantis; 24.03.2009, 23:20.

  • #2
    1. bitte deinen code umbrechen, besonders bei den fehlermeldungen, da man sonst horizontal scrollen muss
    2. getimagesize erwartet einen kompletten pfad, den du im array $photos nicht setzt dort steht nur der dateiname
    3. konstrukte wie "$file2" sind überflüssig wie ein kropf(!) . lass die anführungszeichen weg, die brauchst du hier nicht

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Kleiner Tipp:

      PHP-Code:
      $res imagecreatefromstring(file_get_contents($filePath)); 
      spart dir all das Gedöns mit den verschiedenen MIME-Typen.
      Mein PHP Blog

      Kommentar


      • #4
        ModestLife: Recht hast du, allerdings funktioniert das Script aufgrund seiner Größe doch recht gut und flott. Das lass ich einfach so, ist ja auch nicht meins

        Kropff: Danke für die Hilfe. Allerdings muss ich sagen dass ich aus deinem 2 Tipp nicht schlau werde. Wahrscheinlich liegts an mir, aber ich versteh die Diagnose ehrlich gesagt nicht wirklich. Das mag vielleicht daran liegen, dass ich immer schon mehr der visuelle Typ (frontend) gewesen bin und nie über meine Grundkenntnisse im programmieren hinauswachsen konnte. Da fehlt es mir einfach am algorithmischen Verständnis. Ich versuche das jetzt aufjedenfall noch weiter auseinander zu frickeln, würde mich aber über einen weiteren Beitrag deinerseits freuen.

        Ich versteh nicht, wo im Array $photos der name steht. Ich seh nur eine einzelne deklaration, welche jene Variable als array bestimmt. Außerdem seh ich den Sinn nicht, warum man die Variable überhaupt als array deklarieren sollte. Diese ist doch alleinstehend und wird nur als diese einzelne Variante genutzt, oder sehe ich das falsch? Gibt es im php nicht so eine Art "StringListe" welche es ermöglicht eine bestimmte Variable nach und nach mit strings zu füllen oder läuft das hier nur mit array_push?


        schönen Abend noch
        Zuletzt geändert von AgnosticMantis; 24.03.2009, 23:56.

        Kommentar


        • #5
          Ok, Habs gepackt!

          Trotzdem danke für die Bemühungen.
          Zuletzt geändert von AgnosticMantis; 28.03.2009, 23:47.

          Kommentar

          Lädt...
          X