array und string Wert vergleichen

frankys9

Mitglied
Hallo an alle,

ich versuche folgendes zu realisieren:
Es sollen alle Dateien mit der Endung .jpg und .jpeg aus einem Verzeichnis ausgelesen und in ein array gepackt werden.
Soweit bin ich auch schon gekommen. Meine Lösung ist sicher nicht besonders gut, ich muss aber auch dazu sagen, dass ich von PHP nicht wirklich Ahnung habe.

Jetzt möchte ich den Inhalt des arrays auf bestimmte Worte durchsuchen und mit den Worten aus $title vergleichen. Wenn es eine Übereinstimmung gibt soll das Bild angezeigt werden wenn nicht soll nichts angezeigt werden.

Folgendes Script habe ich bis jetzt gebastelt:

PHP:
error_reporting(E_ALL);
$title = "australien bla bla";
$xdir = "images";
if ($handle = opendir($xdir)) {
    while (false !== ($file = readdir($handle))) {
        $temp = explode(".",$file);
        $endung = $temp[(count($temp)-1)];
        $name = $temp[0];
        $extension1 = ("jpg");
        $extension2 = ("jpeg");
        if ($endung == $extension1 or $endung == $extension2) {
            if ($file != "." && $file != "..") {
                if (in_array($title, $temp)) {
                    echo "<img src='$xdir/$file\n' alt='' /><br /><br />";
                }
            }
        }
    }
    closedir($handle);
}
</span>

Problem dabei ist, dass nur die Grafiken angezeigt werden die auch zu 100% mit dem Inhalt von $title übereinstimmen.
Ich hätte gern, wenn es denn möglich ist, dass wenn eins der Wörter übereinstimmt die entsprechende Grafik angezeigt wird.

Beispiel:

$title = "Australien bla bla";


Grafiken im Ordner: australien.jpg, afrika.jpg

Jetzt soll nur die Grafik angezeigt werden, die am ehesten mit $title übereinstimmt bzw. das erste Wort der Überschrift enthält (also australien.jpg).

Ist das überhaupt in der Form möglich Könnt ihr mir dabei helfen (Links, Tutorials, Code…)

Ich bin für jede Hilfe dankbar
Frank
 
Zuletzt bearbeitet:
Probier mal das hier :

PHP:
error_reporting(E_ALL);
$title = "australien bla bla";
$xdir = "images";

$extension1 = ("jpg");
$extension2 = ("jpeg");

$title_exp=explode(" ",$title);

if ($handle = opendir($xdir)) {
    while (false !== ($file = readdir($handle))) {
        $temp = explode(".",$file);
        $endung = $temp[(count($temp)-1)];
        $name = $temp[0];

        if ($endung == $extension1 or $endung == $extension2) {
            if ($file != "." && $file != "..") {
              foreach($title_exp as $ti) {
              if (in_array($ti, $temp)) echo "<img src='$xdir/$file\n' alt='' /><br /><br />"; 
              } 
            }
        }
    }
    closedir($handle);
}
 
Hllo Dimenson,

das Script ansich funktioniert super in einer PHP seite. Ich muss das nun aber in Smarty einbauen. Dort funktioniert es dann aber komischerweise nicht mehr?!

Im Template schaut das dann so aus:

PHP:
{php}
error_reporting(E_ALL);

$xdir = "templates/ap_old_map/img_specials";

global $title;

$extension1 = ("jpg");
$extension2 = ("jpeg");

$title_exp=explode(" ",$title);
print "$title_exp[0]";

if ($handle = opendir($xdir)) {
    while (false !== ($file = readdir($handle))) {
        $temp = explode(".",$file);
        $endung = $temp[(count($temp)-1)];
        $name = $temp[0];

        if ($endung == $extension1 or $endung == $extension2) {
            if ($file != "." && $file != "..") {
              foreach($title_exp as $ti) {
              if (in_array($ti, $temp)) echo "<img src='$xdir/$file\n' alt='' /><br /><br />"; 
              } 
            }
        }
    }
    closedir($handle);
}
{/php}

Hast du oder jemand anders vielleicht eine Ahnung woran das liegt

Danke
Frank
 
Zuletzt bearbeitet:
Was genau heißt "Dort funktioniert es dann aber komischerweise nicht mehr" ? Fehlermeldung? Passiert einfach nichts? Stimmt den der Pfad zum Verzeichnis? Gib ihn doch mal komplett an:
PHP:
$xdir = $_SERVER['DOCUMENT_ROOT'].'/templates/ap_old_map/img_specials';
Evt muss noch ein bisschen was dazu. Ich weis ja nicht, ob das Verzeichnis direkt im Root deines Webspaces liegt, oder ob es noch ein paar Unterverzeichnisse gibt.
 
Hallo fanste,

fanste hat gesagt.:
Was genau heißt "Dort funktioniert es dann aber komischerweise nicht mehr" ? Fehlermeldung? Passiert einfach nichts? Stimmt den der Pfad zum Verzeichnis?

der Pfad zum Verzeichnis stimmt. Es wird mit den Script-Erweiterungen nur ein String abgefragt der von Smarty kommt und zwischen {php} nicht einfach als $title angesprochen werden kann.

Vielleicht kannst du mir ja sagen wie ich einen solchen String ansprechen kann?!

Danke
Frank
 
Zurück