Kadir: Dynamische Bildervorschau

Hallo!

Ich hatte diese Frage bereits gestellt, wurde aber nicht fündig. Hat jemand ein Skript, welches Bilder aus einem Ordner ausliest und eine Bildervorschau generiert? D.h. ein Vor und Zurück Button. Das Skript muss selbständig anhand des Dateinamens erkennen können, ob es am Anfang oder Ende ist.

Ich brauche deshalb ein dynamisches Skript, weil ich viele Bilder für Veranstaltungen habe und diese nicht immer neu schreiben kann.

Ich danke im Voraus und wünsch nen guten Tag!

mfg Kadir

  1. Hallo, Kadir,

    Hat jemand ein Skript, welches Bilder aus einem Ordner ausliest und eine Bildervorschau generiert? D.h. ein Vor und Zurück Button. Das Skript muss selbständig anhand des Dateinamens erkennen können, ob es am Anfang oder Ende ist.

    Hier schon geschaut? ...

    http://www.hotscripts.com/PHP/Scripts_and_Programs/Image_Galleries/

    Grüße,

    Sebastian

    1. Hier schon geschaut? ...

      http://www.hotscripts.com/PHP/Scripts_and_Programs/Image_Galleries/

      Grüße,

      Sebastian

      Das Zeugs gibts ja wie Sand am Meer, nur vlt. hat einer von euch besonders gute Erfahrung mit bestimmter Freeware gemacht und teilt mir das mit. Ansonsten muss ich die 327 Skripte anschauen...

      Ich suche nach einem Skript, welches nur die Bildvorschau usw. generiert, das Design will ich nicht anpassen müssen.

      Thx

      1. Ansonsten muss ich die 327 Skripte anschauen...
        Ich suche nach einem Skript, welches nur die Bildvorschau usw. generiert, das Design will ich nicht anpassen müssen.

        Schon eine feine Sache, so ein SelfHTML-Forum. Self anfordern, Forum hat bitte prompt zu liefern.

        twb

        1. Schon eine feine Sache, so ein SelfHTML-Forum. Self anfordern, Forum hat bitte prompt zu liefern.

          twb

          Da täuschst du dich. Habe darum gebeten, dass mir ein Skript genannt wird und keine Arbeit von jemandem erwartet. Eine Antwort ala "Superskript XY ist gut" reicht mir schon.

          Und falls ich in diesem Forum bin, versuche ich in der Zeit in der mir geholfen wird, auch anderen zu helfen. Da kannst du ruhig das Archiv der letzten 4 Jahre durchstöbern nach Einträgen von Kadir oder Rannh.

          Ich denke mein Verhalten ist fair. Helfen und geholfen werden.

          mfg Kadir

          1. Hello,

            Da täuschst du dich. Habe darum gebeten, dass mir ein Skript genannt wird und keine Arbeit von jemandem erwartet. Eine Antwort ala "Superskript XY ist gut" reicht mir schon.

            Da eigentlich in jedem Script ein Haar in der Suppe gefunden werden kann (natürlich auch in meinen...) wird Dir hier von den Stammpostern (die sich aber gut auskennen) keiner diese Antwort geben. Entweder, man geht auch noch auf die Schwachstellen ein, oder man weiß, dass das Script gut kommentiert ist, oder man gibt Hinweise, wie Du die Aufgabe selber lösen könntest.

            Aber ganz fertige "Fertiglösungen" wird Dir hier wahrscheinlich niemand empfehlen.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hi,

              Aber ganz fertige "Fertiglösungen" wird Dir hier wahrscheinlich niemand empfehlen.

              Nur um Dir zu widersprechen ;-):

              <?php // PHP >= 4.1.x / 20041210

              if(!isset($SHOW["IndexDir"]) || !isset($showCore)) { $SHOW["IndexDir"]="/data"; } if(!isset($SHOW["IndexFile"])) { $SHOW["IndexFile"]="slideshow.txt"; } if(!isset($SHOW["NoIndex"])) { $SHOW["NoIndex"]=FALSE; } if(!isset($SHOW["NoSort"])) { $SHOW["NoSort"]=FALSE; }

              // Serverpfad zum Root der Domain $hidePath=$_SERVER["DOCUMENT_ROOT"]; $hidePathLen=strlen($hidePath);

              // Arbeitspfad ist der aktuelle ... $startPath=$hidePath.dirname($PHP_SELF); $urlPathOrg=str_replace("/","%2f",dirname($PHP_SELF)); // ... bzw. in dem URL mit 'path=' uebergebener if(isset($_GET["path"])) {  $startPath=$hidePath.$_GET["path"];  $urlPath=str_replace("/","%2f",$_GET["path"]); }

              // Index-Datei fuer Reihenfolge? if(!$SHOW["NoIndex"]) {  if($SHOW["IndexDir"]) {   $indexFile=$hidePath.$SHOW["IndexDir"]."/".str_replace("/","_",substr(dirname($PHP_SELF),1)."/".$SHOW["IndexFile"]);  } else {   $indexFile=$startPath."/".$SHOW["IndexFile"];  } }

              // Ggf. Index-Datei erstellen if(!is_file($indexFile) && !$SHOW["NoIndex"]) {

              // Verzeichnis oeffnen  $handle=opendir($startPath);

              // Wenn Verzeichnis geoeffnet:  if($handle) {   $imgPath=substr($startPath,$hidePathLen);   // Verzeichniseintraege durchgehen ...   while($entry=readdir($handle)) {    // ... in absoluten Server-Dateinamen sichern ...    $serverEntry="$startPath/$entry";    // ... und naechsten Eintrag holen, falls Eintrag keine oder leere Datei ist    if(!is_file($serverEntry) || !filesize($serverEntry)) { continue; }    // Absoluten Domain-Dateinamen ermitteln    $userEntry=substr($serverEntry,$hidePathLen);    // Image-Informationen ermitteln    $imageInfo=getimagesize($serverEntry);    // Wenn es eine "Web-Standard-Grafik" ist (Breite/Hoehe nicht 0, Typ: GIF, JPEG oder PNG):    if($imageInfo[0]*$imageInfo[1] && ($imageInfo[2]>=1 && $imageInfo[2]<=3)) {     // ALT-Attribut festlegen     $imgAlt="";     // Absoluten Domain-Dateinamen sichern     $imgURL=urlescape($userEntry);     // Breite & Hoehe sichern     $imgWidth=$imageInfo[0];     $imgHeight=$imageInfo[1];     // Alle Informationen in einem assoziativen Array sichern, mit dem Dateinamen als Schluessel     $images[$entry]=array("file"=>$imgURL,"width"=>$imgWidth,"height"=>$imgHeight);    }   }   closedir($handle);

              // Grafiken nach Dateiname alphabetisch sortieren ...   if(is_array($images) && !$SHOW["NoSort"]) { ksort($images); }

              // ... und in Index-Datei schreiben   $fp=@fopen($indexFile,"w");   if($fp) {    while(is_array($images) && list($key,$array)=each($images)) {     @fwrite($fp,$array["file"]."\n");    }    @fclose($fp);   }  } }

              if(is_file($indexFile) && !$SHOW["NoIndex"]) {  // Index-Datei einlesen  $fp=@fopen($indexFile,"r");  $data=@fread($fp,filesize($indexFile));  @fclose($fp); } else {  // Dateinamen uebernehmen  $data="";  while(is_array($images) && list($key,$array)=each($images)) {   $data.=$array["file"]."\n";  } }

              // Daten umwandeln in Array mit leerem Starteintrag $images=explode("\n","\n".$data); // Eintraege trimmen for($i=0;$i<count($images);$i++) { $images[$i]=trim($images[$i]); }

              // Erste legale Nummer (0 ist ja leer) $firstNo=1; // Letzte legale Nummer (Anzahl-1, da Index bei 0 beginnt) $lastNo=count($images)-1; // Wenn letzter Eintrag leer (neue Leerzeile in Datei): Reduzieren $lastNo-=(!$images[$lastNo])?1:0;

              // Anzuzeigende Bildnr. // - aus dem Parameer holen oder Startbild nehmen $fileNo=(isset($_GET["no"]))?$_GET["no"]:1; // Maximal letztmoegliches Bild $fileNo=($fileNo>$lastNo)?$lastNo:$fileNo; // Minimal erstmoegliches Bild $fileNo=($fileNo<$firstNo)?$firstNo:$fileNo; // Vorheriges Bild (oder 0) $prevNo=($fileNo!=$firstNo)?$fileNo-1:0; // Naechstes Bild (oder 0) $nextNo=($fileNo!=$lastNo)?$fileNo+1:0;

              // Bildinfos holen if(is_file($hidePath.$images[$fileNo])) {  // ALT-Attribut: Name des Bildes (ohne Endung und " " statt "")  $imgAlt=str_replace(""," ",upto(basename($images[$fileNo]),"."));  // TITLE-Attribut: Großgeschriebener Verzeichnisname + ALT  $imgTitle=ucfirst(str_replace("_"," ",basename(dirname($images[$fileNo])))).': '.$imgAlt;  $imageInfo=getimagesize($hidePath.$images[$fileNo]);  $imgWidth=$imageInfo[0];  $imgHeight=$imageInfo[1]; }

              // JavaScript-Code zum Vorladen des naechsten Bildes $jsCode=' if(document.images) { cache=new Array(); i=-1;'."\n"; if($nextNo) { $jsCode.='  i++; cache[i]=new Image(); cache[i].src="'.$images[$nextNo].'";'."\n"; } if($prevNo) { $jsCode.='  i++; cache[i]=new Image(); cache[i].src="'.$images[$prevNo].'";'."\n"; } $jsCode.=' }'."\n";

              ?>

              <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title>amotiq.de - Slideshow <?=$imgTitle;?></title> <link rel="stylesheet" type="text/css" media="print" href="/data/amotiq-p.css"> <link rel="stylesheet" type="text/css" media="screen" href="/data/amotiq-s.css"> <script type="text/javascript" language="JavaScript"><!--  doc_type="Slideshow"; xJS=false; function b(e,f){if(xJS){deFocus(e,f);}}  FimgDir="/img/"; function Flip(FimgName) { if(xJS) { return F2(FimgName); }} function Flop(FimgName) { if(xJS) { return F1(FimgName); }} function Switch(Name1,Source1,Name2,Source2,Text,TopDown,All) { if(xJS) { return S(Name1,Source1,Name2,Source2,Text,TopDown,All); }} //--></script><script type="text/javascript" language="JavaScript" src="/data/amotiq.js"></script> </head>

              <body bgcolor="#FFFFFF" text="#000000" scroll="auto" bottommargin="0" leftmargin="0" rightmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <basefont face="Arial, Helvetica, sans-serif">

              <?php

              echo '<table border="0" width="99%" height="99%" style="width:100%; height:100%;" cellspacing="0" cellpadding="0"><tr align="center" valign="top"><td height="1">'."\n"; if($lastNo>=$firstNo) {  echo ' <table border="0" cellspacing="0" cellpadding="0"><tr valign="middle">'."\n";  echo '  <td colspan="3" align="center"><small>&#160;</small></td>'."\n";  echo ' </tr><tr valign="middle">'."\n";  echo '  <td align="left"><font size="4"><b>'.(($prevNo)?('<a class="hidefocus" href="'.$PHP_SELF.'?no='.($prevNo).(($urlPath!=$urlPathOrg && $urlPath)?("&amp;path=".$urlPath):("")).'"  onMouseUp="b(this);" hidefocus>zur&uuml;ck</a>'):('')).'</b></font></td>'."\n";  echo '  <td align="center"><font size="3"><b>&#160;'.$fileNo.'/'.$lastNo.'&#160;</b></font></td>'."\n";  echo '  <td align="right"><font size="4"><b>'.(($nextNo)?('<a class="hidefocus" href="'.$PHP_SELF.'?no='.($nextNo).(($urlPath!=$urlPathOrg && $urlPath)?("&amp;path=".$urlPath):("")).'" onMouseUp="b(this);" hidefocus>weiter</a>'):('')).'</b></font></td>'."\n";  echo ' </tr><tr valign="middle">'."\n";  echo '  <td align="left"><font size="4"><b>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</b></font></td>'."\n";  echo '  <td align="center"><font size="3"><b>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</b></font></td>'."\n";  echo '  <td align="right"><font size="4"><b>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</b></font></td>'."\n";  echo ' </tr></table>'."\n";  echo '</td></tr><tr align="center" valign="middle"><td>'."\n";  echo ' <img src="'.$images[$fileNo].'" '.(($imgWidth)?('width="'.$imgWidth.'" '):'').(($imgHeight)?('height="'.$imgHeight.'" '):'').'alt="'.$imgAlt.'" title="'.$imgTitle.'">'."\n"; } else {  echo "<b>Keine Bilder!</b>"."\n"; } echo '</td></tr></table>'."\n"; echo "\n"; insertJS($jsCode);

              // Unerlaubte Zeichen im Dateinamen maskieren (vorlaeufige Version) function urlescape($url) {  $trans=array(" "=>"%20","Ä"=>"%c4","ä"=>"%e4","Ö"=>"%d6","ö"=>"%f6","Ü"=>"%dc","ü"=>"%fc","É"=>"%c9","é"=>"%e9");  $url=strtr($url,$trans);  return $url; }

              function upto($inp,$need,$offset=0) {  $a=mb_strrpos($inp,$need);  $a=substr($inp,$offset,$a-$offset);  return $a; }

              // Funktionen um JavaScript-Code mit PHP einzubinden function startJS() { echo '<script type="text/javascript" language="JavaScript"><!--'."\n"; } function writeJS($jsCode) { echo $jsCode."\n"; } function endJS($noscript="") { echo '//--></script>'; if(!empty($noscript)) { echo '<noscript>'.$noscript.'</noscript>'; } echo "\n"; } function insertJS($jsCode,$noscript="") { startJS(); writeJS($jsCode); endJS($noscript); }

              ?>

              </body> </html>

              Das kann irgendwo liegen - nennen wir es /slide.php. Folgendes liegt im Bilderverzeichnis:

              <?php

              // -------------------- Seitendefinition -------------------- // $SHOW[xxx] koennen hier Standarddefinitionen ueberschreiben $SHOW["IndexDir"]="";

              // -------------------- Systemdefinition --------------------

              // Pfad+Name des Slideshow-Kernels $showCore=$_SERVER["DOCUMENT_ROOT"]."/slide.php";

              // Wenn dieser nicht vorhanden: Abbruch if(is_file($showCore)) { @require($showCore); } else { echo "Programmabruch: Slideshow-Kernel nicht gefunden!<br>Program abortion: slideshow kernel not found!"; }

              ?>

              Das Script speichert alle (darstelbaren) Bilder (also GIF, JEG & PNG) in einer Liste. Ist die Liste vorhanden, wird stattdessen diese genommen (z.B. um die Reihenfolge der Bilder zu ändern.

              Die Kommentierung der weiteren Features spare ich mir hier aber ... ;-)

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
              1. Hello,

                das ist aber nicht fertig.
                Sieht verdammt nach register_globals = on aus und die Dokumentation ist spärlich bis nichtig.

                Da musst Du nochmal ran.

                Harzliche Grüße aus http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
                1. Hi,

                  das ist aber nicht fertig.

                  Doch, ist es - falls man mal philosophische Aspekte und Sonderzeichen außen vor läßt. ;-)

                  Sieht verdammt nach register_globals = on aus

                  Igitt, sowas gehört deaktiviert! =;-) Die Variablen werden, falls benötigt, in der aufrufenden Datei gesetzt.

                  Davon abgesehen sind aber register_globals ja nicht per se böse. Und hier hätten sie auch keinen "bösen" Effekt (höchstens das Schreiben der Dateiliste in beliebige bekannte und ungeschützte Verzeichnisse - Überschreiben von Dateien geht nicht)

                  aus und die Dokumentation ist spärlich bis nichtig.

                  Das war 'ne Arbeit der Marke "Du, ich brauche sofort ...". Wer es nutzen will, soll gefälligst selbst mit den Variablen rumspielen ... >;->

                  Da musst Du nochmal ran.

                  Nö. :)

                  Gruß, Cybaer

                  --
                  Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      2. Hallo, Kadir,

        Das Zeugs gibts ja wie Sand am Meer, nur vlt. hat einer von euch besonders gute Erfahrung mit bestimmter Freeware gemacht und teilt mir das mit. Ansonsten muss ich die 327 Skripte anschauen...

        Man kann leicht anhand der jeweiligen Beschreibung eine Vorauswahl treffen ...

        Ich suche nach einem Skript, welches nur die Bildvorschau usw. generiert, das Design will ich nicht anpassen müssen.

        Was ja nun wirklich keine allzu große Arbeit ist ...

        Wenn Du möchtest, schicke ich Dir ein entsprechendes Skript zu, was zu meiner Zufriedenheit arbeitet. Hier siehst Du es im Betrieb ...

        http://www.scarabeo.de/de/images.php

        Um eine Anpassung bestimmter Parameter wirst Du aber auch dann nicht herumkommen ...

        Grüße,

        Sebastian

        1. Hallo, Kadir,

          dieses Skript solltest Du Dir vielleicht auch mal anschauen ...

          http://www.stadtaus.com/php_scripts/galerie_script/

          Grüße,

          Sebastian