Wie eine Ressource durch einen PHP-Skript zu holen?
-
21-09-2019 - |
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.
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