Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#1

PHP: Script geht .... inzwischen

  Alt 27. Mai 2005, 21:17
Das funktionierende ist unten(in meinem letzten post) angehängt und kann gerne verwendet werden.

habe ein php-skript geschreiben, das mir alle bilder eines verzeichnisses in einer tabelle anzeigt.

es geht auch wunderbar, aber ab und an verschluckt es ein paar dateien, sprich zeigt nicht alle an.

hier is mal der code:

Code:
<?php

function is_image($filename) //diese funktion sollte selbsterklärend sein. stimmt sie?
 {
  //echo "Prüfung für $filename ergab ";
  if (is_dir($filename))
   {
   //print "false\n";
    return false;
   }
  $ext=strtolower(substr($filename,-3));
  switch ($ext)
   {
    case "png":
    case "bmp":
    case "gif":
    case "wmf":
    case "jpg":
    case "peg":
     //print "true\n";
     return true;
     break;
    default:
     //print "false\n ";
     return false;
     break;
   }
 }

if (isset($_REQUEST["dir"]  ))  $dirname = $_REQUEST["dir"]; //hier wird die var $dirname initialisiert.
 else $dirname = ".";
 
$dir = opendir($dirname);
 

 
if (isset($_REQUEST["height"])) $height = $_REQUEST["height"]; //noch mehr init....

if (isset($_REQUEST["width"] )) $width = $_REQUEST["width"];
 else $width="100%";


if (isset($_REQUEST["cols"]))  $cols  = $_REQUEST["cols"];
 else if (isset($width))
  $cols= floor(400 / $width);
else $cols=4;

//print "PHP-Skript-Debug-Infos:\n$cols"; //auskommentiert, würde $cols anzeigen


readdir($dir); // . und
readdir($dir); // .. abfangen

$table_string = "<table class=\"main\">\n"; //init für den string, der später in den html-code kommt

while ( $file = readdir($dir)) //alle files werden durchlaufen
 {
  $break=false;
  $table_string .= " <tr>\n"; //eine neue zeile.....
  for ($i=0;$i<$cols;$i++)    //dieser loop liest die zeile komplett ein
   {
    $table_string .= " <td>";
    while (! is_image($file)) //dieser loop sichert, dass in $file ein image steht
     if (! ($file = readdir($dir)))
     { $break=true;
       break;
     }
    if ($break) break;
    $img_string = "<image src=\"$dirname/$file\" ";           //von hier...
    if (isset($height)) $img_string .= "height=\"$height\" ";
    if (isset($width )) $img_string .= "width=\"$width\" ";
    $img_string .= "alt=\"$file\">";
    $table_string .= $img_string;
    $table_string .= "</td>\n";                              //...bis hier wird der stirng erzeugt.
    $file=readdir($dir);                                     //Hö? ach ja damit wird... das is ja eins zu viel des guten... nein ist es nicht, gerade überprüft! stimmt so!
   }

  $table_string .= " </tr>\n";
 }
 
$table_string .= "</table>\n";
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/transitional.dtd">




<html>
 <head>
  <title>Galerie</title>
 </head>
<body>

<?php echo $table_string; ?>

</body>
</html>
also, ich kann da keinen fehler finden.

ps: dir ist das verzeichnis, cols ist die anzahl der spalten. mehr braucht man nicht. einfach per get übergeben.

[edit=alcaeus][Klammern ersetzt] Mfg, alcaeus[/edit]
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat