Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
非PHP文件的自动预结束文件?_Php_.htaccess - Fatal编程技术网

非PHP文件的自动预结束文件?

非PHP文件的自动预结束文件?,php,.htaccess,Php,.htaccess,我用另一种方式问这个问题。现在问题已经清楚了,我将在下面的表格中添加它: 要为二进制文件(mp3)运行自动预结束文件脚本(或其他等效脚本) 如果我尝试使用Addhandler将mp3当作php处理,将会得到各种各样的错误,因为php将尝试解析mp3文件 是否有一些等效的方法来运行二进制文件的自动预结束文件 (我不能使用mod_rewrite)如果您可以使用.htaccess,您可以简单地为任何类型的请求强制使用前置文件: php_value auto_prepend_file "prepend.

我用另一种方式问这个问题。现在问题已经清楚了,我将在下面的表格中添加它:

要为二进制文件(mp3)运行自动预结束文件脚本(或其他等效脚本)

如果我尝试使用Addhandler将mp3当作php处理,将会得到各种各样的错误,因为php将尝试解析mp3文件

是否有一些等效的方法来运行二进制文件的自动预结束文件


(我不能使用mod_rewrite)

如果您可以使用
.htaccess
,您可以简单地为任何类型的请求强制使用前置文件:

php_value auto_prepend_file "prepend.php"
然后在
prepend.php
中检查请求的内容,或者做些什么(例如,如果是mp3),或者不做(对于任何其他类型的文件)

更新:

好的,对于非PHP文件,它不会自动工作,但您可以执行以下技巧(尽管它不是很好的解决方案):

.hatcess
中,强制将您的
mp3
文件视为
PHP

AddHandler php5-script .mp3
php_value auto_prepend_file "prepend.php"
然后在
prepend.php
中:

// your custom logic here...

header(/* your headers here */);
readfile($_SERVER['SCRIPT_FILENAME']); // serve the requested file
exit(0);

这样它就可以工作了(用PNG文件测试)

yes。但是我需要运行prepend.php,即使http请求是针对非php的,比如mp3thank,但需要在不使用readfile的情况下运行。人们需要直接联系。如果我自己发球,就会收到各种各样的抱怨。我尝试了所有“正确标题”的组合,但仍然收到投诉。唯一有效的方法是如果有一个直接链接,那么请检查您直接下载时得到的标题,然后使用PHP执行相同的操作-如果您选择标题1:1您直接下载的标题-应该没有区别。“我不能使用mod_rewrite”-这是一个遗憾,这将是您问题的明显解决方案。你能解释一下,你的前置文件是做什么的吗?也许还有第三条路。