我有一个网站,所有文件都是 php 文件,在服务器上我们也有 htaccess 为友好的 url 进行重写,即 /about
我们已经通过 PHP 对 JS 和 CSS 进行了缩小,但是由于 HTML 位于实际页面上,因此有一种方法可以在 php 添加到页面的动态位之后但在服务器将其发送回之前缩小 html给客户?
我已经尝试实现 minify,但是回调函数会在没有错误的情况下破坏页面。
<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");
如果我们正在谈论动态地缩小所有内容,我会建议您谨慎对待将其视为优化。
是的,可能会节省大量带宽。是的,您的用户可能会从较小的下载中获得性能提升。
但是,如果您正在使用 PHP 动态缩小文件(这听起来像是您正在做的事情),那么您实际上也可能会减慢最终用户的速度。
最好在静态文件上进行缩小。缩小它们一次,保存它们,然后在请求文件时将缩小的文件提供给浏览器,无需任何进一步的处理。每次请求文件时都在 PHP 中执行此操作可能会导致显着的性能开销,这很容易抵消较小下载大小带来的收益。
缩小 HTML 通常不如 Javascript 有效。“缩小” PHP 生成的 HTML 的最佳方法是从 HTML 模板文件中删除不必要的空白。这通常是一项非常简单的任务,并且不需要专用的压缩工具——最简单的方法就是从文件中删除所有缩进。空白在 HTML 中是相关的,所以你不能把它全部去掉,但是失去缩进应该可以处理大部分问题,同时仍然方便地使文件保持合理的可读性。
所以我的建议是尽可能静态地缩小你的文件。但是,如果您必须即时执行此操作,请不要使用 PHP 来完成这项工作。使用专用服务器插件,例如 Google 的mod_pagespeed。该插件会在您请求文件时为您缩小文件(以比 PHP 更高的速度),并且还负责缓存缩小的版本,以尽量减少对性能的影响。
希望有帮助。
您可以查看 PHP 中的输出缓冲,这将允许您进行最后的缩小步骤。如果您的目标是最小化下载,那么还有 gZip 编码可供研究。
这可能会有所帮助:如何缩小 php 页面 html 输出
我最近遇到了一个脚本,用于即时压缩您的 HTML 源代码,称为 动态网站压缩器的脚本
这是一个基于 PHP 的脚本,但可以与 .htaccess 一起使用