pfaciana/tiny-html-minifier

使用单个类在PHP中压缩HTML

3.0.0 2020-07-27 03:41 UTC

This package is auto-updated.

Last update: 2024-08-27 13:41:42 UTC


README

Version 3.0.0 MIT license Donate

变更日志

简而言之

  • PHP中的HTML压缩器。
  • 它非常非常快。
  • 只需要一个文件。
  • 几乎不使用正则表达式。
  • 几乎不使用选项。

详细信息 - 压缩器的作用

  • 删除HTML注释。
  • 删除自闭合元素的斜杠。 />变为>
  • 删除 style script标签中的 type="text/css"type="text/javascript"
  • 最小化<head></head>内的元素。它不会保留任何空白(除了script内部)。
  • 最小化<body></body>内的元素,但保留标签之间的空格以保留内联数据(可选)。
  • 最小化内联SVG文件(它们是一堆XML标签)。
  • 最小化自定义元素。它们看起来像这样:<my-element>我的内容</my-element>
  • 跳过codeprescripttextarea的压缩。

安装与使用

Composer

composer require pfaciana/tiny-html-minifier

PHP

<?php

require __DIR__ . '/vendor/autoload.php';

use Minifier\TinyMinify;

echo TinyMinify::html($html);

前后对比

之前

<!doctype html>
<html lang="en">
<head>

<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />

<link href="http://example.com/style.css" rel="stylesheet" />
<link rel="icon" href="http://example.com/favicon.png" />

<title>Tiny Html Minifier</title>

</head>
<body class="body">

<div class="main-wrap">
    <main>
        <textarea>
            Some text
            with newlines
            and some spaces
        </textarea>

        <div class="test">
            <p>This text</p>
            <p>should not</p>
            <p>wrap on multiple lines</p>
        </div>
    </main>
</div>
<script>
    console.log('Script tags are not minified');
    console.log('This is inside a script tag');
</script></body>
</html>

之后

<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link href="http://example.com/style.css" rel="stylesheet"><link rel="icon" href="http://example.com/favicon.png"><title>Tiny Html Minifier</title></head> <body class="body"><div class="main-wrap"> <main> <textarea>
            Some text
            with newlines
            and some spaces
        </textarea> <div class="test"> <p>This text</p> <p>should not</p> <p>wrap on multiple lines</p> </div> </main> </div> <script>
    console.log('Script tags are not minified');
    console.log('This is inside a script tag');
</script></body></html>

选项

<?php

require __DIR__ . '/vendor/autoload.php';

use Minifier\TinyMinify;

echo TinyMinify::html($html, $options = [
    'collapse_whitespace' => false,
    'disable_comments' => false,
]);

collapse_whitespace

未折叠

保留空格(除了<head></head>内的大多数元素)。当使用内联元素时很有用。这是默认设置。

<ul><li> <a href="#"> My link </a></li><li> <a href="#"> My link </a></li> </ul>

折叠

空格被折叠。元素内的文本仍然保持不变。将此值设置为true,您将节省一些额外的字节。

<ul><li><a href="#">My link</a></li><li><a href="#">My link</a></li></ul>

要求

  • PHP7+

免责声明

本插件提供“现状”且不提供任何保证。自行承担使用风险,并在生产环境中使用前自行测试。如果您发现任何问题,请创建新问题

许可

MIT

不建议在任何推广种族主义、性别歧视、恐同、动物虐待、暴力或其他任何形式的仇恨言论的项目中使用此插件。

捐赠

如果您想进行捐赠,可以通过发送任何金额https://www.paypal.me/DevoneraAB

致谢