Kurosan: Auslesen und ausgeben von Bildern

Guten Tag,
ich verwende dieses Script simplyScroll v2
Es funktioniert auch bestens, trotzdem hab ich eine Frage dazu.

Per PHP kann ich einen Ordner auslesen und seinen Inhalt anzeigen lassen(in diesem Fall nur Bilder), allerdings setzt das jquerry nicht um und zeigt mir teilweise den Code.

Es sind ein paar hundert Bilder in dem Ordner.

Wie kann man Jquerry dazu bringen die per PHP ausgelesenen Bilder zuverwerten und anzuzeigen?

MfG

Ingo

  1. Hi

    Wie kann man Jquerry dazu bringen die per PHP ausgelesenen Bilder zuverwerten und anzuzeigen?

    Lies sie richtig aus!
    Ich denke nicht, dass du ein jQuery- sondern ein PHP-Problem hast.
    Wo ist dein relevanter Code?

    Gruß
    Ole

  2. Per PHP kann ich einen Ordner auslesen und seinen Inhalt anzeigen lassen(in diesem Fall nur Bilder), allerdings setzt das jquerry nicht um und zeigt mir teilweise den Code.

    Es geht genau darum in dieser Kette den Fehler zu finden. Die Kette allein zu beschreiben reicht dabei natürlich nicht aus. Du musst schon schreiben, was Du wie genau machst.

    Was bedeutet "anzeigen"? Willst Du mit php den Html-Quelltext automatisiert generieren, oder möchtest Du wirklich mit php die Bilder aus einem (vielleicht nicht öffentlichen) Verzeichnis lesen und per php-script ausliefern (Header und readfile())? Für ersteres genügt der Pfad zum Bild. Bei letzterem werden die Bildinformationen von php gelesen und ausgegeben.

    Es sind ein paar hundert Bilder in dem Ordner.

    Das ist relativ irrelevant.

    Wie kann man Jquerry dazu bringen die per PHP ausgelesenen Bilder zuverwerten und anzuzeigen?

    Jquery wird das schon annehmen, wenn du mit PHP die Bilder korrekt auslieferst.

    Cheers,
    Baba

  3. Guten Tag,
    zum Auslesen hab ich diesen Code verwendet:

    <!doctype html>  
    <html>  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    <title>jQuery simplyScroll - Logicbox</title>  
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">  
    </script>  
    <!--<script type="text/javascript" src="/js/common.js"></script>-->  
    <script type="text/javascript" src="./jquery.simplyscroll.js"></script>  
    <link rel="stylesheet" href="./jquery.simplyscroll.css" media="all" type="text/css">  
    <script type="text/javascript">  
    (function($) {  
            $(function() {  
                    $("#scroller").simplyScroll({autoMode: 'loop',  
                                                 pauseOnHover: false,  
                                                 pauseOnTouch: false  
                                                });  
            });  
    })(jQuery);  
    </script>  
    </head>  
      
    <body>  
      
    <ul id="scroller">  
     <?php  
      
    $dirname = '.../../flag/';  
    $endung = '.gif';  
    $dir = dir($dirname);  
    while ($filename = $dir->read())  
    {  
       $alt = str_replace($endung,'',$filename);  
       if ($filename <> $alt)  
          echo '[img]'.$dirname.$filename.'[/img]'."\n";  
    }  
    $dir->close();  
    ?>  
    </ul>  
      
      
    </body>  
    </html>
    

    und das wird ausgegeben im Scroll:
    read()) { $alt = str_replace($endung,'',$filename); if ($filename <> $alt) echo

    Die Bilder sind nicht in einem Geschützten Ordner.

    <ul id="scroller">  
        <li><img src="../../flag/0.gif" alt=""></li>  
    </ul>
    

    so werden die Bilder normalerweise ausgelesen, aber es wären wie gesagt ein paar hundert die in dem Ordner sind.

    1. Hallo,

      <!doctype html>

      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>jQuery simplyScroll - Logicbox</title>
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
      </script>
      <!--<script type="text/javascript" src="/js/common.js"></script>-->
      <script type="text/javascript" src="./jquery.simplyscroll.js"></script>
      <link rel="stylesheet" href="./jquery.simplyscroll.css" media="all" type="text/css">
      <script type="text/javascript">
      (function($) {
              $(function() {
                      $("#scroller").simplyScroll({autoMode: 'loop',
                                                   pauseOnHover: false,
                                                   pauseOnTouch: false
                                                  });
              });
      })(jQuery);
      </script>
      </head>

      <body>

      <ul id="scroller">

      
      > ~~~php
      
      <?php  
      
      >   
      > $dirname = '.../../flag/';  
      > $endung = '.gif';  
      > $dir = dir($dirname);  
      > while ($filename = $dir->read())  
      > {  
      >    $alt = str_replace($endung,'',$filename);  
      >    if ($filename <> $alt)  
      >       echo '[img]'.$dirname.$filename.'[/img]'."\n";  
      > }  
      > $dir->close();  
      > ?>
      
      

      </ul>

      </body>
      </html>

      
      >   
      > und das wird ausgegeben im Scroll:  
      > read()) { $alt = str\_replace($endung,'',$filename); if ($filename <> $alt) echo  
        
      Das ist ein Stück des Quelltextes aus dem oben gezeigten Blocks, das PHP sein möchte. Anscheinend führt dein Server aber gar kein PHP aus, so dass der PHP-Code ungeparst beim Client ankommt. Der macht nun mit dem unbekannten Tag "<?php" das, was ein HTML-Parser eben mit unbekannten Tags machen soll: Er sucht dessen Ende und ignoriert das Ganze. Das Ende (aus HTML-Sicht) ist das erste Auftreten des Zeichens '>'. Ab da wird der Text wieder normal ausgegeben.  
        
      Untersuche also zunächst, warum der PHP-Code nicht ausgeführt wird.  
        
      So long,  
       Martin  
      
      -- 
      Lieber mit Betty im Wald  
      als mit Waldi im Bett.  
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      
    2. مرحبا

      while ($filename = $dir->read())
      {
         $alt = str_replace($endung,'',$filename);
         if ($filename <> $alt)
            echo '[img]'.$dirname.$filename.'[/img]'."\n";
      }

      <ul id="scroller">

      <li><img src="../../flag/0.gif" alt=""></li>
      </ul>

        
      Ich glaube nicht, dass obiger Code die darauf folgende Liste generiert. Schau dir den Quelltext deiner Seite an, da wird was ganz anderes stehen, als die untere Liste.  
        
      
      >  echo '[img]'.$dirname.$filename.'[/img]'."\n";  
        
      Die Ausgabe dieser Zeile ist wohl eher für BBCode gedacht, dass wiederum in korrektes HTML umgewandelt wird.  
        
      mfg  
      \-- 
      
  4. Guten Tag
    und danke für eure Hilfe........geholfen habt ihr mir........erstens ich hab die Datei als html gespeichert()erster Fehler) muss php sein.
    Zweitens ich hab den falschen Code zum Auslesen verwendet.....

    Nun habe ich die Fehler berichtigt und alles funktioniert.

    closed<

  5. Guten Tag,
    doch leider nicht erledigt.

    So sieht das Script(als php Datei) im ganzem aus und funktioniert bestens:

    <!doctype html>  
    <html>  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
    <title>jQuery simplyScroll - Logicbox</title>  
        <script type="text/javascript" src="../../js/jquery.js"></script>  
        <script type="text/javascript" src="jquery.simplyscroll.js"></script>  
        <link rel="stylesheet" href="./css/jquery.simplyscroll.css" media="all" type="text/css">  
        <script type="text/javascript">  
    (function($) {  
            $(function() {  
                    $("#scroller").simplyScroll({autoMode: 'loop',  
                                                 pauseOnHover: false,  
                                                 pauseOnTouch: false  
                                                });  
            });  
    })(jQuery);  
        </script>  
    </head>  
    <body>  
    <ul id="scroller">  
     <?php  
    $i = 1;  
    $bilder = array();  
    $verzeichnis = opendir("../../picflag/");  
    while ($bild = readdir($verzeichnis)) {  
        if ($bild !=".") {  
    $bilder[] = "<li><img src=\"../../pic/$bild\"></li>";  
        }  
    }  
    closedir($verzeichnis);  
    $max = count($bilder);  
    while ($i<=$max){  
        echo $bilder[$i];  
        $i = $i+1;  
    }  
    ?>  
    </ul>  
    </body>  
    </html>
    

    Zum Einbinden in das vorhandene System muss das Script getrennt werden:
    erste Datei(glob.html.php):

    <!DOCTYPE html>  
    <html>  
    <head>  
    <meta charset="ISO-8859-1" />  
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />  
    <title><?=$ZE_SETT->chat_name?></title>  
        <script type="text/javascript" src="./js/jquery.js"></script>  
        <script type="text/javascript" src="./js/jquery.simplyscroll.js"></script>  
        <link rel="stylesheet" href="./css/jquery.simplyscroll.css" media="all" type="text/css">  
        <script type="text/javascript">  
    (function($) {  
            $(function() {  
                    $("#scroller").simplyScroll({autoMode: 'loop',  
                                                 pauseOnHover: false,  
                                                 pauseOnTouch: false  
                                                });  
            });  
    })(jQuery);  
        </script>  
    </head>  
    <body>  
    <ul id="scroller">  
        <?=$bilder[]?>  
    </ul>  
    </body>  
    </html>
    

    zweite Datei(glob.inc.php):

    <?php  
    $i = 1;  
    $bilder = array();  
    $verzeichnis = opendir("./pic/globwo/flag/");  
    while ($bild = readdir($verzeichnis)) {  
        if ($bild !=".") {  
    $bilder[] = "<li><img src=\"./pic/globwo/flag/$bild\"></li>";  
        }  
    }  
    closedir($verzeichnis);  
    $max = count($bilder);  
    while ($i<=$max){  
        echo $bilder[$i];  
        $i = $i+1;  
    }  
    require_once './html/globwo.html.php';  
    ?>
    

    Leider werden die Bilder dann nur noch untereinander angezeigt und nicht als jquerry-scroll(alle Bilder laufen hintereinander weg).

    Wo und wie kann man das Problem lösen und hat jemand eine Lösung dazu?

  6. Guten Tag,
    einige Probleme wurden dank eurer Hilfe bereits gelöst, allerdings hab ich wieder eines?^^

    Die Bilder werden alle sauber ausgelesen, nur mit der Übergabe klappt es nicht:

    $verz = './pic';  
    $d = opendir($verz);  
    while(($bild=readdir($d))!==false){  
    if(!is_dir($verz.$bild) && $bild!="Thumbs.db"){  
    $string = $bild;  
    $position_des_letzten_punktes = strrpos($string, '.');  
    $text = substr($string, 0, $position_des_letzten_punktes);  
    $bildx .= '<li><a href="http://www.'.$text.' " target="_blank"><img src="'.$verz.'/'.$bild.'" alt="http://www.'.$text.' " /><a></li>';  
    }  
     }  
    closedir($d);  
    $return = json_encode($bild);  
    $picture = $bildx;  
    require_once './html/test.html.php';  
    ?>
    

    so wir das ganze in der test.inc.php ausgelesen
    und so soll es ausgegeben werden:

        <script type="text/javascript" src="./js/jquery.js"></script>  
        <script type="text/javascript" src="./js/simple.carousel.js"></script>  
        <script type="text/javascript">  
            jQuery(document).ready(function() {  
                $("ul.partner").simplecarousel({  
                    width:168,  
                    height:300,  
                    auto: 4000,  
                    fade: 400  
                });  
            });  
      
        </script>  
    </head>  
    <body>  
    <ul class="partner">  
    <?=$bildx?>  
    </ul>  
    </body>  
    </html>
    

    das Problem ich bekomme nur das erste Bild angezeigt, aber es befinden sich 5 Bilder(sollen mehr werden) im Ordner.
    Für die test.inc.php hab ich dann noch eine Frage, wie bekomme ich hin das die Bilder vorher gezählt werden, so das keine Leerläufe entstehen?

    Ich danke schonmal für die Hilfe

    1. Tach!

      das Problem ich bekomme nur das erste Bild angezeigt, aber es befinden sich 5 Bilder(sollen mehr werden) im Ordner.

      Die Antwort lautet mal wieder: Debugging! Schau mit Kontrollausgaben nach, wo konkret Wunsch und Wirklichkeit auseinanderlaufen. var_dump() zeigt am genauesten an, was in einer Variable vorliegt.

      Für die test.inc.php hab ich dann noch eine Frage, wie bekomme ich hin das die Bilder vorher gezählt werden, so das keine Leerläufe entstehen?

      Erst die Dinge in einem Array sammeln, dann ausgeben. So kann man auch einfach mit count() die Elemente zählen lassen.

      dedlfix.