如何通过PHP脚本获取资源?

时间:2009-10-14 01:50:47

标签: php server-configuration

我正在尝试在我的网络应用程序中执行以下操作:

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

是否可以让我的服务器(我在共享托管环境中使用Apache)在访问.jpg(或我选择的任何文件类型)而不是仅仅提供文件时运行PHP脚本?

我知道PHP脚本必须设置正确的标题等,我只是想知道它是如何在第一时间运行的。

我知道这可以这样做:

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

但这不是我想要的方式。

1 个答案:

答案 0 :(得分:3)

如果你在一个子目录中,你可以使用mod_rewrite,或者你所有的其他static.example.com都会这样做。

将类似内容添加到该子目录中的.htaccess。

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

编辑:尝试上述方法。像其他一切一样,未经测试......:)

GET参数的顺序变得很重要。

test.jpg?height=100&width=120

应该变成

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

<小时/> 另一种方法是使apache将.jpg作为该目录的php脚本。 只需查看httpd.conf或php.conf并查找.php即可。找到该指令,并在** <Directory>内复制它。 我从来没有真正尝试过这个目录,但最终它会比mod_rewrite路由更快。

类似的东西:

<Files *.jpg>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
AddType application/x-httpd-php .jpg