Probleme mit Element eines Arrays

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

  • Probleme mit Element eines Arrays

    Hi,

    ich möchte ersteinmal voranstellen, dass ich ganz frisch in PHP bin ;-) - bitte habt Mitgefühl.

    Mein Problem ist folgendes - ich baue gerade eine Image-gallery und möchte, dass als Vorschaubild immer ein anderes kommt.
    Ich habe also ersteinmal das Verzeichnis ausgelesen und alle Thumbs rausgefiltert und die Dateinamen in Array geschrieben. Dann habe ich das Array geshuffelt und wollte nun das erste Element als Thumbnail, indem ich als html img src $verz/$tname ($verz ist das Verzeichnis wo die Bilder liegen).
    Doch es funktioniert nicht, die Variable $tname ist sogar leer - ich versteh's einfach nicht.

    Es folgt der Code:

    PHP-Code:
    // Heraussuchen des Thumbs und Darstellung
    $thumbnamen=array();
    $handle opendir($verz);
     while (
    $tn=readdir($handle))
      {
      if (
    in_array($tn,array("thumb.")) && is_file("$tn"))
       {
    array_push($thumbnamen$tn);}
      }
     
    shuffle($thumbnamen);
    closedir($handle);
    $test=empty($thumbnamen);
    if (
    $test==true)
     {
      
    exec("$verz/index.php");
      
    $handle opendir($verz);
      while (
    $tn=readdir($handle))
       {
       if (
    in_array($tn,array("thumb.")) && is_file("$tn"))
        {
    array_push($thumbnamen$tn);}
       }
       
    shuffle($thumbnamen);
      
    closedir($handle);
     }
    $tname $thumbnamen[0];
    echo (
    "<a href=\"$verz/index.php\" target=\"_parent\">");
    echo (
    "<img src=\"$verz/$tname\" style=\"border:$borderstyle\"></a><br>");
    echo (
    "<a href=\"$verz/index.php\" target=\"_parent\">");
    echo (
    "$verz</a>");
    echo(
    "</td>"); 
    Danke für eure Hilfe!

  • #2
    Re: Probleme mit Element eines Arrays

    Wo ist deinen Testausgabe, ob $thumbnamen nach dem Auslesen des Verzeichnisses überhaupt Elemente enthält?

    PHP-Code:
     if (in_array($tn,array("thumb.")) && is_file("$tn")) 
    Was soll denn dieses unsinnige Konstrukt?
    Ein Array mit nur einem Wert, um in_array() anwenden zu können?
    Und wiese glaubst du (offenbar), dass in_array() true liefern würde, wenn lediglich der Anfang des Strings mit dem Anfang des Elementes im Array übereinstimmen würde?

    PHP-Code:
    exec("$verz/index.php"); 
    Was bitte willst du damit bezwecken?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: Probleme mit Element eines Arrays

      Original geschrieben von wahsaga
      Wo ist deinen Testausgabe, ob $thumbnamen nach dem Auslesen des Verzeichnisses überhaupt Elemente enthält?
      Nach diesem Teil muss $thumbnamen Elemente enthalten, da gecheckt wurde ob Bilder vorhanden sind und ob Thumbnails vorhanden sind und diese sollten dann eigentlich ausgegeben werden.

      PHP-Code:
       if (in_array($tn,array("thumb.")) && is_file("$tn")) 
      Was soll denn dieses unsinnige Konstrukt?
      Ein Array mit nur einem Wert, um in_array() anwenden zu können?
      Und wiese glaubst du (offenbar), dass in_array() true liefern würde, wenn lediglich der Anfang des Strings mit dem Anfang des Elementes im Array übereinstimmen würde?
      Das mit dem Anfang versteh' ich nicht ganz, sorry.

      PHP-Code:
      exec("$verz/index.php"); 
      Was bitte willst du damit bezwecken?
      Der Bildprozessor ist ausgelagert in der index.php des jeweiligen Verzeichnisses - nun soll das Skript checken, ob Thumbs schon erstellt wurden - wenn nicht soll der Bildprozessor ausgeführt werden.

      Kommentar


      • #4
        Das mit dem Anfang versteh' ich nicht ganz, sorry
        Du verstehts eher in_array nichts.

        Bei in_array muss die geprüfte Variable, in Deinem Fall $tn, mit einem Element des Array übereinstimmen.
        Da bei Dir in $tn immer ein gesamter Dateiname drin steht, wird das wohl nie der Fall sein.

        Was Du suchst ist strpos

        PHP-Code:
         if ((strpos($tn,'thumb.')) && (is_file("$tn"))) 
        EDIT:
        Und lass Dir mal am Schluss Dein Array ausgeben, wie schon empfohlen!
        Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

        Kommentar

        Lädt...
        X