2016-09-12 1 views
2

Ich habe ein Skript, das automatisch jedes Mal ein Bild aus einem Verzeichnis lädt, wenn die Seite aktualisiert wird. Wenn die Person jedoch mit dem Bild verlinken möchte, kann sie dies nicht, da keine URLs generiert werden. Hier ist das aktuelle Skript:Wie erzeuge ich automatische URLs für dieses einfache Skript?

<?php 
$imagesDir = 'images/'; 
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); 
$randomImage = $images[array_rand($images)]; 
?> 
<img src="http://www.domain.com/<?php echo $randomImage; ?>"> 

Wie man hier sehen kann, wird das Skript zieht automatisch ein zufälliges Bild aus dem Ordner zeigt es dann. Wenn die Seite aktualisiert wird, lädt das Skript ein neues Bild. Wie kann ich dafür sorgen, dass jedes Bild seine eigene eindeutige URL-Kennung hat? Ist das überhaupt möglich? Jede Hilfe ist willkommen. Vielen Dank.

+0

hätte nicht jedes Image bereits seinen eindeutigen URL-Identifikator, in dem Ihr img src auf diese 'eindeutige URL' verweist? –

+0

Ja, jedes Bild könnte direkt über Bild URL-Adresse verknüpft werden. Aber ich spreche über eine statische Seite für jedes Bild. Etwas wie http://www.domain.com/image-1.php –

+1

Möchten Sie eine PHP-Seite mit dem Bild gehen? Oder nur das Bild selbst? –

Antwort

1

Alles, was Sie brauchen, ist eine Möglichkeit, Parameter in Ihr Skript zu bekommen. Ein üblicher Weg ist mit der Abfragezeichenfolge.

http://example.com/yourScript.php?image=abcdefg.jpg 

Dann in Ihrem PHP-Skript, können Sie $_GET['image'] verwenden, dass die angeforderte Bild abcdefg.jpg war zu bestimmen.

Wenn Ihnen diese URL nicht zusagt, können Sie Ihren Webserver so konfigurieren, dass er die URL neu schreibt, bevor er an PHP gesendet wird. Das heißt, dass Sie so etwas wie diese:

http://example.com/images/abcdefg.html 

Ihr Rewrite-Engine des Web-Servers wird /images/abcdefg.html nehmen und schreibt es /yourScript.php?image=abcdefg.jpg intern, bevor es zu PHP zu senden. Der Benutzer wird das nicht wissen oder sich darum kümmern. Dann können Sie wie gewohnt auf die Daten in Ihrem PHP-Skript zugreifen.

Wie Sie dies tun, hängt von Ihrem Webserver ab. Wenn Apache, sollten Sie in mod_rewrite schauen. Nginx hat das ngx_http_rewrite_module.

Jetzt, in Ihrem PHP-Skript, alles, was Sie tun müssen, ist eine Seite mit der richtigen Variable zu rendern. Ich empfehle eine Vorlage-Engine, aber für eine einfache Seite echo mit htmlspecialchars() um beliebige Daten wird gut tun. Sie können auch einige andere Dinge tun, wie zum Beispiel Datei Existenz überprüfen, wenn Sie möchten.

+0

Jetzt kommen wir irgendwohin. Das macht Sinn. Können Sie, wenn Sie können, Beispielcode zur Verfügung stellen? –

+0

@DavidHinojosa Für was? Umschreiben? Nein, weil ich nicht weiß, welchen Webserver Sie verwenden. – Brad

+0

Ich benutze Apache. Aber nicht für das Neuschreiben, für den $ _GET ['image'] Teil –

Verwandte Themen