1

我有一个网站,所有文件都是 php 文件,在服务器上我们也有 htaccess 为友好的 url 进行重写,即 /about

我们已经通过 PHP 对 JS 和 CSS 进行了缩小,但是由于 HTML 位于实际页面上,因此有一种方法可以在 php 添加到页面的动态位之后但在服务器将其发送回之前缩小 html给客户?

我已经尝试实现 minify,但是回调函数会在没有错误的情况下破坏页面。

4

4 回答 4

7

<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");
于 2013-07-04T23:13:16.757 回答
5

如果我们正在谈论动态地缩小所有内容,我会建议您谨慎对待将其视为优化。

是的,可能会节省大量带宽。是的,您的用户可能会从较小的下载中获得性能提升。

但是,如果您正在使用 PHP 动态缩小文件(这听起来像是您正在做的事情),那么您实际上也可能会减慢最终用户的速度。

最好在静态文件上进行缩小。缩小它们一次,保存它们,然后在请求文件时将缩小的文件提供给浏览器,无需任何进一步的处理。每次请求文件时都在 PHP 中执行此操作可能会导致显着的性能开销,这很容易抵消较小下载大小带来的收益。

缩小 HTML 通常不如 Javascript 有效。“缩小” PHP 生成的 HTML 的最佳方法是从 HTML 模板文件中删除不必要的空白。这通常是一项非常简单的任务,并且不需要专用的压缩工具——最简单的方法就是从文件中删除所有缩进。空白在 HTML 中是相关的,所以你不能把它全部去掉,但是失去缩进应该可以处理大部分问题,同时仍然方便地使文件保持合理的可读性。

所以我的建议是尽可能静态地缩小你的文件。但是,如果您必须即时执行此操作,请不要使用 PHP 来完成这项工作。使用专用服务器插件,例如 Google 的mod_pagespeed。该插件会在您请求文件时为您缩小文件(以比 PHP 更高的速度),并且还负责缓存缩小的版本,以尽量减少对性能的影响。

希望有帮助。

于 2012-11-12T21:18:49.920 回答
0

您可以查看 PHP 中的输出缓冲,这将允许您进行最后的缩小步骤。如果您的目标是最小化下载,那么还有 gZip 编码可供研究。

这可能会有所帮助:如何缩小 php 页面 html 输出

于 2012-11-12T20:18:40.080 回答
0

我最近遇到了一个脚本,用于即时压缩您的 HTML 源代码,称为 动态网站压缩器的脚本

这是一个基于 PHP 的脚本,但可以与 .htaccess 一起使用

于 2013-05-14T07:11:09.217 回答