使用php的readfile()或重定向来显示图像文件?

时间:2009-06-26 19:58:13

标签: php performance

我在webroot之外有一个目录,包含images,css和javascripts。
这些文件经常更改。我可以编写一个定位文件的脚本,找出mime类型并将其输出到浏览器
我可以找到该文件,将其复制到webaccessable目录并使用标头位置重定向到该文件。当再次请求文件时,首先将检查文件是否被修改,并再次重定向。

明智的表现会更好吗?每个请求一个readfile,或每个请求一个时间戳检查和重定向(所以2个请求而不是一个)

3 个答案:

答案 0 :(得分:2)

第一个表现规则:基准,不要推测。

我会立即违反第一条规则并推测读取文件会更快,因为它会消除网络往返。

您需要多少性能?最快的方法是在完全不同的机器上在子域(例如http://static.mysite.com/foo.jpg)下设置单独的静态内容Web服务器,然后让那个Web服务器处理经常变化的图像/ css / javascript文件。

答案 1 :(得分:1)

另一个建议:如果你控制了文件系统,你可以在图像文件的web-accessibleable目录中创建一个symbolic link?使用exec()调用'ln'命令或可能 PHP symlink()函数可能有效。

答案 2 :(得分:1)

如何直接指向文件的符号链接,而不是整个目录?您甚至可以将其设置为“静态”文件名,然后让Web服务器执行修改时间戳检查和缓存,这可能会更快,更快。

基准,当然:)