基本上,我想发送一个头X-Sendfile到浏览器来发送一个文件,但是如果X-Sendfile不可用或者没有安装在服务器上,我不想调用它。如何在PHP中检查此问题??或者如果这是不可能在PHP中检查的,那么如何检查它的安装期?我宁愿在PHP中检查X-Sendfile的存在,因为这样做对我来说更容易,因为这是将在其他站点和服务器上运行的包的一部分……也许如果我只是将它与PHP header函数一起使用,如果没有安装它,它会返回一些东西??
谢谢大家:)
发布于 2012-09-02 12:35:21
APACHE模块mod_xsendfile处理X-Sendfile标头
要检查APACHE模块mod_xsendfile是否可用并安装在服务器上,可以使用apache_get_modules()函数。
您不能只设置头并检查模块是否已安装。
发布于 2012-09-02 12:35:22
要获取apache模块的列表并查看x-sendfile是否在列表中,可以使用http://php.net/manual/en/function.apache-get-modules.php。如果未安装,x-sendfile头文件将到达浏览器,如果已安装,则模块将过滤掉头文件。
发布于 2012-09-02 15:51:43
试试这个:
if (in_array('mod_xsendfile', apache_get_modules())) {
header("X-Sendfile: $file");
} else {
error_log("Warning! mod-xsendfile is NOT INSTALLED - sending file the old fashion way.....");
header('Content-Length: ' . filesize($file) );
print file_get_contents($file);
}https://stackoverflow.com/questions/12233386
复制相似问题