Frage

Ich versuche, die folgenden in meiner Web-Anwendung zu tun:

<img src="static.example.com/image01.jpg?width=300&height=300" />

Ist es möglich, meine Server zu haben (ich benutze Apache in einem Shared-Hosting-Umgebung) ein PHP-Skript ausgeführt, wenn eine JPG-Zugriff (oder eine beliebige Datei des Typs, dass ich gewählt haben), anstatt nur die Datei dienen?

Ich weiß, dass der PHP-Skript die richtigen Header etc gesetzt hat, ich frage mich nur, wie kann es in erster Linie ausgeführt werden.

Ich weiß, das wie so getan werden kann:

<img src="static.example.com/get_image.php?name=image_01.jpg&width=300&height=300" />

, aber das ist nicht, wie ich es haben möchte.

War es hilfreich?

Lösung

Sie könnten verwenden mod_rewrite sofern Sie in einem Unterverzeichnis sind, oder das heißt alle anderen static.example.com tun werden.

Fügen Sie so etwas wie dies in der .htaccess in diesem Unterverzeichnis.

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{query_string} ^height=([^&]+)&width=([^&]+)
   RewriteRule (.*\.jpg|.*\.png|.*\.gif) controller.php?name=$1&height=%1&width=%2
</IfModule>

EDIT: Versuchen Sie, die oben. Wie alles andere, nicht getestet ...:)

Die Reihenfolge der GET-Parameter wichtig.

test.jpg?height=100&width=120

sollte und in der sie gedreht

controller.php?name=test.jpg&height=100&width=120


Ein anderer Ansatz wäre, Apache .jpg als PHP-Skripte für dieses Verzeichnis machen dienen. Schauen Sie einfach in Ihre httpd.conf oder php.conf und suchen nach .php. Finden Sie diese Richtlinie, und duplizieren sie innerhalb eines <Directory> für .jpg. Ich habe eigentlich nie versucht, dies für ein einzelnes Verzeichnis, aber letztlich wäre es schneller als die mod_rewrite Route.

So etwas wie:

<Files *.jpg>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
AddType application/x-httpd-php .jpg
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top