我在这里工作在 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;
现在我的问题如下:
你会推荐什么,
streamcontroller.php
从 MVC 中取出?有streamer.php
旁边index.php
的例子吗?index.php
在的函数中添加检查功能replace_tabs_newlines($content)
以检查浏览器是否指向streamcontroller.php
并且不执行缩小工作?也许有一种方法可以
ob_start()
在即将输出某些东西时阻止 's 回调被执行?即:在readfile()
之前streamcontroller.php
?我会欣赏在这种情况下完全被接受的新想法。