2016-12-20 5 views
0

Ich habe Bilder wie diese:Wie man Bild mit einer anderen URL zeigt?

/images/10.png 

Und ich habe Array:

$arr = [10 => 'pretty_name']; 

ist möglich Bild anzuzeigen, aber pretty_name mit 10.png?

Ich habe versucht, Bild mit richtigen Überschriften (Content-Type: image/png). Es funktioniert, aber es ist langsam.

Kann ich das zum Beispiel mit htaccess?

+1

Sie möchten also /images/pretty_name.png verwenden, um /images/10.png anzuzeigen? Sie müssten den Array-Schlüssel zuerst finden (array_search), dann img src zu /images/pretty_name.png – JustBaron

+0

Ja, ich möchte dies tun, aber ich muss hübschen Namen in DOM anzeigen. 10.png kann nicht in HTML angezeigt werden. – Vuer

+0

Warum willst du das? Ein Name eines Bildes, um es zu definieren und zu erhalten. Wenn Sie den Namen ändern, ist es nicht mehr. Das ist meine Idee. – Jusfunny

Antwort

2

Sie können .htaccess und so etwas wie folgt verwenden:

RewriteEngine on 
RewriteRule ^/?images/([0-9]+)/.*(\..*)$ /images/$1$2 

Dann in Ihrem HTML können Sie Ihre Bild-URLs wie folgt schreiben:

<img src="/images/10/pretty_name.png" /> 

Die Rewrite-Regel wird den Dateinamen parsen (In diesem Fall, 10) sowie die Erweiterung (.png) und schreibe es in den realen Pfad, Ignorieren Sie den "pretty_name" Teil vollständig.

Der Nachteil ist, dass jeder "schöner Name" funktioniert. Zum Beispiel würde diese alle auf /images/10.png:

/images/10/pretty_name.png 
/images/10/something_random.png 
/images/10/earth_photo.png 

Dies ist, weil es keine Reverse-Check ist die hübsche Namen, um die ID, um sicherzustellen, übereinstimmt. Ob dies tolerierbar ist, hängt von Ihrer Anwendung ab.

+0

Großartige Idee. Vielen Dank! – Vuer

+0

Schöne Annäherung/Workaround – JustBaron

Verwandte Themen