2017-07-05 2 views
2

Ich versuche, eine Galerie zu erstellen, wo Bilder automatisch aus einem Bilderverzeichnis gezogen werden.PHP: Ziehen Sie alle Bilder aus einem angegebenen Verzeichnis mit relativen Bildpfad

Wenn ich foreach() jedes Bild, um es jedoch kehrt er zieht den gesamten Wurzelpfad als das Bild src

/home/dev/public_html/assets/images/

dies die Bilder führt nicht zu zeigen, und zeigt tot verknüpfte Bilder auf dem Bildschirm. Ich brauche den relativen Pfad wie folgt aus:

/assets/images/imagename.jpg

Wie würde ich einen Basispfad/URL eingestellt?

$dirname = "/home/dev/public_html/assets/images/";        

$images = glob($dirname."*.jpg"); 

foreach($images as $image) { 
    echo '<img src="'.$image.'" /><br />'; 
} 

Ich versuchte $dirname dieser

$dirname = "/assets/images/"; 

Einstellung Aber ich bekomme kein Ergebnis und nichts zieht überhaupt durch.

Die Datei, in der ich dies erstelle, befindet sich außerhalb des Ordners public_html, ich glaube, das könnte das Problem beheben, aber die Datei kann nicht verlagert werden.

Edit::

Antwort

2

ich die Schleife zu entfernen, um unnötigen Zeichenfolge Pfad bearbeiten würde:

foreach($images as $image) { 
    $src = str_replace('/home/dev/public_html' ,'', $image) ; 
    echo '<img src="'.$src.'" /><br />'; 
} 
0

könnten Sie können die Verwendung von scandir()http://php.net/manual/en/function.scandir.php

some wie machen Changed der Code ein wenig, so scandir nur Dateien nehmen, da sonst die ersten beiden in der Anordnung platziert sind Ordner für die Eltern Ordner.

$dir = "assets/images/"; 
$images = scandir($dir); 

foreach($images as $image) { 
    if($image != '.' && $image != '..') { 
      echo ' <img src="assets/images/'.$image.'"><br>'; 
    } 
} 

Ich hoffe, dies hat geholfen. Wenn nicht, lass es mich wissen, damit ich meine Antwort ändern kann. Aber ich denke, es sollte in Ordnung sein, soweit ich verstanden habe, was du versuchst.

+0

ich Ihren vorgeschlagene Code hinzugefügt, jedoch bekam ich folgende Fehlermeldung mit keinen Ergebnisse zurückgegeben: Warnung: scandir (/ assets/images /): konnte nicht geöffnet werden dir: Keine solche Datei oder Verzeichnis in /home/dev/target-pages/themes/gallery.php on line 27 – Ben

+0

Okay, zu stoppen. Ich verstehe nicht, was du tust. Können Sie uns bitte Ihre Dateistruktur zeigen? Übrigens. Ich habe gerade den Code auf meinem Live-Server mit einigen zufälligen Bildern getestet, es funktioniert perfekt. Dein einziges Problem ist also, dass du das Skript nicht an der richtigen Stelle platziert hast/ich habe den richtigen Pfad nicht angegeben - was ich nicht kann, da ich deine Dateistruktur nicht kenne. Geben Sie mir einfach einen vollständigen Pfad zum Bildordner und den vollständigen Pfad zum Skript. Also kann ich meinen Code anpassen. – Twinfriends

Verwandte Themen