我在这里处理MVC模式。
我有index.php
作为基本文件,控制器位于/controllers/
目录中。如果您转到/stream/xIEjeEJWqs
,例如/controllers/streamcontroller.php
将会被执行。
index.php
这样开始,它会缩小即将发送到浏览器的输出:
<?php
function replace_tabs_newlines($content)
{
require_once 'includes/min/lib/Minify/HTML.php';
require_once 'includes/min/lib/Minify/CSS_MODIFIED.php';
require_once 'includes/min/lib/JSMin.php';
$content = Minify_HTML::minify($content, array(
'cssMinifier' => array('Minify_CSS', 'minify'),
'jsMinifier' => array('JSMin', 'minify')
));
return $content;
}
ob_start('replace_tabs_newlines');
ob_implicit_flush(0);
...
所以这段代码会减少输出的内容,例如:
<html>
<head>
<title>
Minifies..
</title>
变为<html><head><title>Minifies..</title>
因此,问题是streamcontroller.php必须输出PNG,MP4等内容,而当它readfile()
- sa内容时,浏览器无法识别由index.php
压缩的内容。开始。
从streamcontroller.php中提取:
case "png":
header('Content-type:image/png');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
break;
现在我的问题如下:
你会推荐什么,从MVC中取出streamcontroller.php
?例如streamer.php
旁边有index.php
吗?
在index.php
的{{1}}函数中添加检查功能以检查浏览器是否指向replace_tabs_newlines($content)
并且不执行缩小工作?
也许有一种方法可以阻止streamcontroller.php
的回调在输出某些内容时被激活?即:ob_start()
中的readfile()
之前?
我会欣赏在这种情况下被广泛接受的新想法。