在<doctype html>标记或配置文件之前使用此选项
function sanitize_output($buffer)
{
$search = array(
'/\>[^\S ]+/s', // strip whitespaces after tags, except space
'/[^\S ]+\</s', // strip whitespaces before tags, except space
'/(\s)+/s' // shorten multiple whitespace sequences
);
$replace = array(
'>',
'<',
'\\1'
);
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}
ob_start("sanitize_output");
Run Code Online (Sandbox Code Playgroud)
如果我们正在讨论动态缩小动态的一切,我会建议你谨慎看待这是一个优化.
是的,可能会节省大量带宽.是的,您的用户可能会从较小的下载量中获得性能提升.
但是,如果您使用PHP动态缩小文件(这听起来就像您正在做的那样),那么您实际上可能会为最终用户减慢速度.
最小化最好在静态文件上完成.将它们缩小一次,保存它们,并将缩小的文件提供给浏览器,而无需在请求文件时进行任何进一步处理.每次请求文件时都要在PHP中执行此操作可能会产生很大的性能开销,从而很容易抵消较小下载大小的收益.
缩小HTML通常不如Javascript有效."缩小"PHP生成的HTML的最佳方法是从HTML模板文件中删除不必要的空白区域.这通常是一项非常简单的任务,并且不需要专门的minifier工具 - 最简单的方法就是从文件中删除所有缩进.白色空间与HTML相关,因此您不能完全摆脱它,但丢失缩进应该处理大部分内容,同时方便地保留文件的合理可读性.
所以我的建议是尽可能静态地缩小文件.但是如果你必须动手做,不要使用PHP来完成工作.使用专用服务器插件,例如Google的mod_pagespeed.这个插件会在请求时缩小文件(以比PHP更快的速度),并且还负责缓存缩小版本,以最大限度地降低性能影响.
希望有所帮助.