代码之家  ›  专栏  ›  技术社区  ›  Ed Marty

如何在PHP中确定htaccess设置的mime类型

  •  0
  • Ed Marty  · 技术社区  · 15 年前

    我在根目录/a/b/中设置了一个.htaccess文件来定义特定的mime类型,并且所有文件都在同一目录中。

    我有一个php文件,它想在root/c/目录中提供这些文件,需要确定由.htaccess文件定义的内容类型。

    有什么办法吗?PHP版本为5.1.6。 mime_content_type 收益率 text/plain 我不想手动解析.htaccess文件。必要时我可以移动文件。

    2 回复  |  直到 15 年前
        1
  •  1
  •   ax. Clement Herreman    15 年前

    如果您想用PHP服务这些文件,为什么不用PHP定义mime类型(例如,作为扩展名为>mime-type对的关联数组)?

    也就是说,在不解析.htaccess文件的情况下实现这一点的一种可能方法是让PHP脚本在 root/a/b 并检查响应头中的mime类型。如果你把文件 HTTP wrapper ,例如 fopen('http://example.com/a/b/file') ,您将自动获得:您可以通过以下方式访问响应头: $http_response_header stream_get_meta_data -mime类型在 Content-Type: 标题。如果您以另一种方式打开文件,您仍然可以先执行头请求,然后检查响应内容类型(即使对每个提供的文件执行2个请求似乎有些过分)。

        2
  •  1
  •   leonbloy    15 年前

    您的意思是,您希望通过一个PHP脚本提供一些静态文件,并将它们以相同的内容类型返回,就像Apache服务器直接(静态)提供这些文件一样?

    我认为你不需要读.htaccess文件就不能直接这么做。即使这样也不一定是万无一失的,因为.htaccess文件只覆盖apache配置的全局设置,甚至覆盖一些父目录中的其他.htaccess文件。

    我能想象的唯一万无一失的方法是,您自己的PHP脚本创建一个HTTP连接,用于获取(静态)文件和获取内容类型——但这对于您的场景可能不实际(并且要小心无限循环!).